需求描述:
[list]
[*]用户在未登录时访问网站中某个需要登录后才能访问的URL
[*]请求被拦截跳转登陆页面
[*]登陆后跳转未登录时访问的路径
[/list]
具体实现:
1.拦截器 配置文件shiro.ini
解释:
(1)filters指代自定义拦截器
authc2=com.fiter.FormAuthenticationFilter2,其中等号右侧为自定义拦截器代码,左侧为
指代
(2)urls指代需要进行拦截的URI
若该访问路径的URI需要有某种限制即需要被拦截器过滤下,即配制该拦截器
2.自定义拦截器
[list]
[*]用户在未登录时访问网站中某个需要登录后才能访问的URL
[*]请求被拦截跳转登陆页面
[*]登陆后跳转未登录时访问的路径
[/list]
具体实现:
1.拦截器 配置文件shiro.ini
[urls]
/usr/info/** = authc2
[filters]
authc2=com.fiter.FormAuthenticationFilter2
解释:
(1)filters指代自定义拦截器
authc2=com.fiter.FormAuthenticationFilter2,其中等号右侧为自定义拦截器代码,左侧为
指代
(2)urls指代需要进行拦截的URI
若该访问路径的URI需要有某种限制即需要被拦截器过滤下,即配制该拦截器
2.自定义拦截器
public class FormAuthenticationFilter2 extends FormAuthenticationFilter {
private static final Logger log = LoggerFactory.getLogger(FormAuthenticationFilter2.class);//定义日志输出
@Override
protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
if (isLoginRequest(request, response)) {
if (isLoginSubmission(request, response)) {
}
return executeLogin(request, response);
} else {
if