authentication details
This commit is contained in:
parent
a4a4586127
commit
02b74616b2
|
@ -50,7 +50,7 @@ public class OAuth2WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||
@Value("${openaire.override.logout.url}")
|
||||
private String openaireLogoutUrl;
|
||||
|
||||
private static Logger logger = LoggerFactory.getLogger(OAuth2WebSecurityConfig.class);
|
||||
private static Logger log = LoggerFactory.getLogger(OAuth2WebSecurityConfig.class);
|
||||
|
||||
@Override
|
||||
protected void configure(final HttpSecurity http) throws Exception {
|
||||
|
@ -86,7 +86,7 @@ public class OAuth2WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||
return (req, res, e) -> {
|
||||
final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
||||
if (authentication != null) {
|
||||
logger.warn(String
|
||||
log.warn(String
|
||||
.format("User '%s' (%s) attempted to access the protected URL: %s", UserInfo.getEmail(authentication), req
|
||||
.getRemoteAddr(), req.getRequestURI()));
|
||||
}
|
||||
|
@ -108,10 +108,10 @@ public class OAuth2WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||
handler.setPostLogoutRedirectUri("{baseUrl}");
|
||||
handler.setRedirectStrategy((req, res, url) -> {
|
||||
if (StringUtils.isNotBlank(openaireLogoutUrl)) {
|
||||
logger.info("Performing remote logout: " + openaireLogoutUrl);
|
||||
log.info("Performing remote logout: " + openaireLogoutUrl);
|
||||
res.sendRedirect(openaireLogoutUrl);
|
||||
} else {
|
||||
logger.info("Performing remote logout: " + url);
|
||||
log.info("Performing remote logout: " + url);
|
||||
res.sendRedirect(url);
|
||||
}
|
||||
});
|
||||
|
@ -125,10 +125,15 @@ public class OAuth2WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||
return (userRequest) -> {
|
||||
final OidcUser oidcUser = delegate.loadUser(userRequest);
|
||||
|
||||
final Optional<User> user = databaseUtils.findUser(oidcUser.getEmail());
|
||||
log.debug("User attributes:");
|
||||
oidcUser.getAttributes().forEach((k, v) -> {
|
||||
log.debug(" - " + k + ": " + v);
|
||||
});
|
||||
|
||||
final Optional<User> user = databaseUtils.findUser(UserInfo.getEmail(oidcUser));
|
||||
|
||||
if (user.isPresent()) {
|
||||
databaseUtils.updateUserDetails(oidcUser.getEmail(), oidcUser.getFullName(), oidcUser.getAttribute("organization"));
|
||||
databaseUtils.updateUserDetails(UserInfo.getEmail(oidcUser), UserInfo.getFullname(oidcUser), UserInfo.getOrganization(oidcUser));
|
||||
}
|
||||
|
||||
final String role = "ROLE_" + OpenOrgsConstants.OPENORGS_ROLE_PREFIX + user
|
||||
|
@ -143,17 +148,4 @@ public class OAuth2WebSecurityConfig extends WebSecurityConfigurerAdapter {
|
|||
};
|
||||
}
|
||||
|
||||
// https://www.baeldung.com/spring-security-openid-connect
|
||||
|
||||
// https://github.com/mitreid-connect/
|
||||
// https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/tree/master/openid-connect-client
|
||||
// https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/wiki/Client-configuration
|
||||
|
||||
// https://svn.driver.research-infrastructures.eu/driver/dnet45/modules/uoa-login-core/trunk/
|
||||
// https://svn.driver.research-infrastructures.eu/driver/dnet45/modules/uoa-user-management/trunk/
|
||||
// https://svn.driver.research-infrastructures.eu/driver/dnet45/modules/dnet-openaire-users/trunk/
|
||||
// https://svn.driver.research-infrastructures.eu/driver/dnet45/modules/dnet-login/trunk/
|
||||
|
||||
// Aprire Ticket a GRNET con Argiro e Katerina come watchers
|
||||
|
||||
}
|
||||
|
|
|
@ -72,12 +72,12 @@ public class HomeController extends AbstractDnetController {
|
|||
|
||||
@ModelAttribute("fullname")
|
||||
public String getUserFullname(final Authentication authentication) {
|
||||
return authentication != null ? UserInfo.getFullname(authentication) : null;
|
||||
return authentication != null ? UserInfo.getFullname(authentication) : "unknown";
|
||||
}
|
||||
|
||||
@ModelAttribute("organization")
|
||||
public String getUserOrganization(final Authentication authentication) {
|
||||
return authentication != null ? UserInfo.getOrganization(authentication) : null;
|
||||
return authentication != null ? UserInfo.getOrganization(authentication) : "unknown";
|
||||
}
|
||||
|
||||
@ModelAttribute("sysconf")
|
||||
|
|
|
@ -5,6 +5,7 @@ import org.apache.commons.lang3.StringUtils;
|
|||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser;
|
||||
import org.springframework.security.oauth2.core.oidc.user.OidcUser;
|
||||
|
||||
public class UserInfo {
|
||||
|
||||
|
@ -90,17 +91,29 @@ public class UserInfo {
|
|||
|
||||
public static String getEmail(final Authentication authentication) {
|
||||
final Object user = authentication.getPrincipal();
|
||||
return user instanceof DefaultOidcUser ? ((DefaultOidcUser) user).getEmail() : authentication.getName();
|
||||
return user instanceof DefaultOidcUser ? getEmail((DefaultOidcUser) user) : authentication.getName();
|
||||
}
|
||||
|
||||
public static String getEmail(final OidcUser user) {
|
||||
return user.getEmail();
|
||||
}
|
||||
|
||||
public static String getFullname(final Authentication authentication) {
|
||||
final Object user = authentication.getPrincipal();
|
||||
return user instanceof DefaultOidcUser ? ((DefaultOidcUser) user).getFullName() : "unknown";
|
||||
return user instanceof DefaultOidcUser ? getFullname((DefaultOidcUser) user) : "unknown";
|
||||
}
|
||||
|
||||
public static String getFullname(final OidcUser user) {
|
||||
return user.getFullName();
|
||||
}
|
||||
|
||||
public static String getOrganization(final Authentication authentication) {
|
||||
final Object user = authentication.getPrincipal();
|
||||
return user instanceof DefaultOidcUser ? ((DefaultOidcUser) user).getAttribute("organization") : "unknown";
|
||||
return user instanceof DefaultOidcUser ? getOrganization((DefaultOidcUser) user) : "unknown";
|
||||
}
|
||||
|
||||
public static String getOrganization(final OidcUser user) {
|
||||
return user.getAttribute("organization");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue