Add the access module to validate the access for a role.

main
KKlochko 1 year ago
parent b3a52913a0
commit 2b1fef5b0e

@ -0,0 +1,29 @@
package space.kklochko.spring_rest_example.security.access;
public class AccessPower {
int ADMIN = 2;
int USER = 1;
public int accessPower(String role) {
if(role.equals("ADMIN"))
return ADMIN | USER;
if(role.equals("USER"))
return USER;
return 0;
}
public boolean isUser(String role) {
int power = accessPower(role);
return (power & USER) != 0;
}
public boolean isAdmin(String role) {
int power = accessPower(role);
return (power & ADMIN) != 0;
}
}

@ -0,0 +1,56 @@
package space.kklochko.spring_rest_example.security.access;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import space.kklochko.spring_rest_example.db.repositories.TokenRepository;
import space.kklochko.spring_rest_example.db.repositories.UserRepository;
import space.kklochko.spring_rest_example.models.Token;
import space.kklochko.spring_rest_example.models.User;
@Component
public class AuthorizedValidator {
@Autowired
private UserRepository userRepository;
@Autowired
private TokenRepository tokenRepository;
AccessPower accessPower = new AccessPower();
public Boolean isUser(String token){
Token userToken = tokenRepository.read(token);
if(userToken == null)
return null;
User user = userRepository.read(userToken.getUsername());
if(user == null)
return null;
return accessPower.isUser(user.getRole());
}
public Boolean isAdmin(String token){
Token userToken = tokenRepository.read(token);
if(userToken == null)
return null;
User user = userRepository.read(userToken.getUsername());
if(user == null)
return null;
return accessPower.isAdmin(user.getRole());
}
public String noToken(){
return "Access denied, you have invalid token or no token!!!";
}
public String accessDeniedNoPermission(){
return "Access denied, you have no permission!!!";
}
}
Loading…
Cancel
Save