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…
Reference in new issue