package fr.openwide.core.jpa.security.service;
import java.util.Collection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.acls.model.Permission;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import fr.openwide.core.jpa.security.business.authority.util.CoreAuthorityConstants;
public class CoreAuthenticationServiceImpl implements IAuthenticationService {
@Autowired
private ISecurityService securityService;
@Override
public String getUserName() {
return AuthenticationUtil.getUserName();
}
@Override
public boolean isLoggedIn() {
return AuthenticationUtil.isLoggedIn();
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return AuthenticationUtil.getAuthorities();
}
@Override
public Collection<? extends Permission> getPermissions() {
return securityService.getPermissions(AuthenticationUtil.getAuthentication());
}
@Override
public boolean hasSystemRole() {
return securityService.hasSystemRole(AuthenticationUtil.getAuthentication());
}
@Override
public boolean hasAdminRole() {
return securityService.hasAdminRole(AuthenticationUtil.getAuthentication());
}
@Override
public boolean hasAuthenticatedRole() {
return securityService.hasAuthenticatedRole(AuthenticationUtil.getAuthentication());
}
@Override
public boolean hasRole(String role) {
return securityService.hasRole(AuthenticationUtil.getAuthentication(), role);
}
@Override
public boolean hasPermission(Object securedObject, Permission permission) {
return securityService.hasPermission(AuthenticationUtil.getAuthentication(), securedObject, permission);
}
@Override
public boolean hasPermission(Permission permission) {
return securityService.hasPermission(AuthenticationUtil.getAuthentication(), permission);
}
@Override
public boolean isAnonymousAuthority(String grantedAuthoritySid) {
return CoreAuthorityConstants.ROLE_ANONYMOUS.equals(grantedAuthoritySid);
}
@Override
public void signOut() {
AuthenticationUtil.setAuthentication(null);
}
@Override
public boolean isSuperUser() {
return securityService.isSuperUser(AuthenticationUtil.getAuthentication());
}
@Override
public Authentication getAuthentication() {
return AuthenticationUtil.getAuthentication();
}
}