一、简介
ssm application.xml 中配置相关认证过滤器后就会拦截web 请求并自动完成认证功能:
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="loginUrl" value="/login" />
<property name="securityManager" ref="securityManager" />
<property name="filterChainDefinitions">
<value>
/test=authc
/login=authc
</value>
</property>
</bean>
笔者在实现ssm 和 shiro 整合时登录页面使用了get 请求方式,结果怎么都不会有认证的相关流程,这非常让笔者苦恼,还是翻看了相关源码才知道问题出现的症结。
二、FormAuthenticationFilter
1.既然时servlet 中的 filter 在拦截到请求时一定执行 doFilter 方法。FormAuthenticationFilter 继承体系:
2.追根溯源OncePerRequestFilter