/*
* Copyright 2014-2016 Hewlett-Packard Development Company, L.P.
* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License.
*/
package com.hp.autonomy.frontend.find.idol.beanconfiguration;
import com.hpe.bigdata.frontend.spring.authentication.AuthenticationInformationRetriever;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class IdolLoginSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler {
private final String configUrl;
private final String applicationUrl;
private final String roleDefault;
private final AuthenticationInformationRetriever<?, ?> authenticationInformationRetriever;
public IdolLoginSuccessHandler(
final String configUrl,
final String applicationUrl,
final String roleDefault,
final AuthenticationInformationRetriever<?, ?> authenticationInformationRetriever
) {
this.configUrl = configUrl;
this.applicationUrl = applicationUrl;
this.roleDefault = roleDefault;
this.authenticationInformationRetriever = authenticationInformationRetriever;
}
@Override
protected String determineTargetUrl(final HttpServletRequest request, final HttpServletResponse response) {
final Authentication authentication = authenticationInformationRetriever.getAuthentication();
for (final GrantedAuthority grantedAuthority : authentication.getAuthorities()) {
final String authority = grantedAuthority.getAuthority();
if (roleDefault.equalsIgnoreCase(authority)) {
return configUrl;
}
}
return applicationUrl;
}
}