基于ConcurrentSessionControllerImpl的旧代码如何从Spring Security 2.0迁移到3.0?

时间:2018-08-03 12:09:46

标签: java spring spring-security migration

我坐在这里是使用Spring Security 2.0的旧Java代码,必须将其迁移到Spring Security 3.0及更高版本。

我现在的问题是,有一个扩展ConcurrentSessionControllerImpl的类已在Spring Security 3.0中通过重构而删除。关键是我找不到有关此重构的任何文档,也找不到Spring Security 2.0文档中的ConcurrentSessionControllerImpl类。

该类将覆盖以下方法:

public void checkAuthenticationAllowed(final Authentication auth) throws AuthenticationException;

public void registerSuccessfulAuthentication(final Authentication authentication);

是否有迁移的方法,还是必须重写整个应用程序的安全层?

1 个答案:

答案 0 :(得分:0)

由于Spring Security的重构,ConcurrentSessionControllerImpl已大部分重构为org.springframework.security.web.authentication.session.ConcurrentSessionControlStrategy

registerSuccessfulAuthentication最适合的位置

onAuthentication(Authentication authentication, HttpServletRequest request, HttpServletResponse response)

checkAuthenticationAllowed现在是ConcurrentSessionControlStrategy中的私有方法,可以通过以下方式部分自定义:

protected void allowableSessionsExceeded(List<SessionInformation> sessions, int allowableSessions, SessionRegistry registry);

protected int getMaximumSessionsForThisUser(Authentication authentication);

还可以配置一些设置器:

public void setExceptionIfMaximumExceeded(boolean exceptionIfMaximumExceeded);
public void setMaximumSessions(int maximumSessions);

有关ConcurrentSessionControlStrategy的更多信息,请查看JavaDocs