[原创]Spring Security的登录后续处理方法

方法一:
1) 定义登录的default-target-url,注意always-use-default-target必须设置为true,否则default-target-url可能根本走不到。

<form-login login-processing-url="/jalenLogin" login-page="/login.htm" default-target-url="/afterLogin.htm" authentication-failure-url="/login-error-true.htm" always-use-default-target="true" />


2) 对于定义的default-target-url,实现对应的action:

@Results( { @Result(name = "success", value = "/", type = ServletDispatcherResult.class) }) ervletDispatcherResult.class) })
public class AfterLoginAction{
public String execute() throws Exception {
// login后续的处理逻辑
return SUCCESS;
}
}


方法一用户使用性上有点差(记不住用户原来访问的页面)。

方法二:复杂度稍微高些
1) 自定义自己的AuthenticationProcessingFilter,替换掉系统设置的:

public class JalenAuthenticationProcessingFilter extends AuthenticationProcessingFilter {
protected void onSuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, Authentication authResult) throws IOException {
//后续处理逻辑放在这里
}
}


2) 配置该filter

<authentication-manager alias="authenticationManager" />
<beans:bean class="jalen.jalenweb.web.filter.JalenAuthenticationProcessingFilter">
<custom-filter position="AUTHENTICATION_PROCESSING_FILTER" />
<beans:property name="authenticationManager" ref="authenticationManager" />
<beans:property name="filterProcessesUrl" value="/jalenLogin" />
<beans:property name="defaultTargetUrl" value="/" />
<beans:property name="authenticationFailureUrl" value="/login-error-true.htm" />
</beans:bean>


3) 关闭auto-config,继承过来的filter和原filter有相同的order,因此会冲突。同时删除form-login这个element,这样将不会创建原filter。

auto-config="false"


4) 设置filter entry point

entry-point-ref="authenticationProcessingFilterEntryPoint"



<beans:bean id="authenticationProcessingFilterEntryPoint" class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<beans:property name="loginFormUrl" value="/login.htm" />
</beans:bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值