fix #2690 replace deprecated methods
This commit is contained in:
parent
06d495e11c
commit
9114a5dc69
1 changed files with 17 additions and 5 deletions
|
@ -23,6 +23,7 @@ import java.util.Map;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
|
@ -53,6 +54,8 @@ import org.lastaflute.web.util.LaRequestUtil;
|
|||
import org.lastaflute.web.util.LaResponseUtil;
|
||||
|
||||
import com.onelogin.saml2.Auth;
|
||||
import com.onelogin.saml2.authn.AuthnRequestParams;
|
||||
import com.onelogin.saml2.logout.LogoutRequestParams;
|
||||
import com.onelogin.saml2.settings.Saml2Settings;
|
||||
import com.onelogin.saml2.settings.SettingsBuilder;
|
||||
|
||||
|
@ -160,7 +163,7 @@ public class SamlAuthenticator implements SsoAuthenticator {
|
|||
return null;
|
||||
}
|
||||
|
||||
return new SamlCredential(auth);
|
||||
return createLoginCredential(request, response, auth);
|
||||
} catch (final Exception e) {
|
||||
logger.warn("Authentication is failed.", e);
|
||||
return null;
|
||||
|
@ -170,7 +173,8 @@ public class SamlAuthenticator implements SsoAuthenticator {
|
|||
|
||||
try {
|
||||
final Auth auth = new Auth(getSettings(), request, response);
|
||||
final String loginUrl = auth.login(null, false, false, true, true);
|
||||
final AuthnRequestParams authnRequestParams = new AuthnRequestParams(false, false, true);
|
||||
final String loginUrl = auth.login(null, authnRequestParams, true);
|
||||
request.getSession().setAttribute(SAML_STATE, UuidUtil.create());
|
||||
return new ActionResponseCredential(() -> HtmlResponse.fromRedirectPathAsIs(loginUrl));
|
||||
} catch (final Exception e) {
|
||||
|
@ -180,10 +184,17 @@ public class SamlAuthenticator implements SsoAuthenticator {
|
|||
}).orElseGet(() -> null);
|
||||
}
|
||||
|
||||
protected LoginCredential createLoginCredential(final HttpServletRequest request, final HttpServletResponse response, final Auth auth) {
|
||||
final SamlCredential samlCredential = new SamlCredential(auth);
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("SamlCredential: {}", samlCredential);
|
||||
}
|
||||
return samlCredential;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resolveCredential(final LoginCredentialResolver resolver) {
|
||||
resolver.resolve(SamlCredential.class, credential -> OptionalEntity.of(credential.getUser()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -197,8 +208,9 @@ public class SamlAuthenticator implements SsoAuthenticator {
|
|||
final SamlUser samlUser = (SamlUser) user.getFessUser();
|
||||
try {
|
||||
final Auth auth = new Auth(getSettings(), request, response);
|
||||
return auth.logout(null, samlUser.getName(), samlUser.getSessionIndex(), true, samlUser.getNameIdFormat(),
|
||||
samlUser.getNameidNameQualifier(), samlUser.getNameidSPNameQualifier());
|
||||
final LogoutRequestParams logoutRequestParams = new LogoutRequestParams(samlUser.getSessionIndex(), samlUser.getName(),
|
||||
samlUser.getNameIdFormat(), samlUser.getNameidNameQualifier(), samlUser.getNameidSPNameQualifier());
|
||||
return auth.logout(null, logoutRequestParams, true);
|
||||
} catch (final Exception e) {
|
||||
logger.warn("Failed to logout from IdP: {}", samlUser, e);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue