use of org.platformlayer.auth.v1.Auth in project sonarqube by SonarSource.
the class SamlIdentityProvider method callback.
@Override
public void callback(CallbackContext context) {
//
// Workaround for onelogin/java-saml validation not taking into account running a reverse proxy configuration. This change
// makes the validation take into account 'X-Forwarded-Proto' and 'Host' headers set by the reverse proxy
// More details here:
// - https://github.com/onelogin/java-saml/issues/198
// - https://github.com/onelogin/java-saml/issues/95
//
HttpServletRequest processedRequest = useProxyHeadersInRequest(context.getRequest());
Auth auth = newAuth(initSettings(null), processedRequest, context.getResponse());
processResponse(auth);
context.verifyCsrfState(STATE_REQUEST_PARAMETER);
LOGGER.trace("Name ID : {}", auth.getNameId());
checkAuthentication(auth);
samlMessageIdChecker.check(auth);
LOGGER.trace("Attributes received : {}", auth.getAttributes());
String login = getNonNullFirstAttribute(auth, samlSettings.getUserLogin());
UserIdentity.Builder userIdentityBuilder = UserIdentity.builder().setProviderLogin(login).setName(getNonNullFirstAttribute(auth, samlSettings.getUserName()));
samlSettings.getUserEmail().ifPresent(email -> userIdentityBuilder.setEmail(getFirstAttribute(auth, email)));
samlSettings.getGroupName().ifPresent(group -> userIdentityBuilder.setGroups(getGroups(auth, group)));
context.authenticate(userIdentityBuilder.build());
context.redirectToRequestedPage();
}
Aggregations