使用shiro框架,解决跳转页面出现404的问题

shiro框架是一个安全框架,在进行登录的时候,如果没有配置路径,它会跳到shiro的默认配置的路径“/”下面,所以总是会出现404的错误,因为它的路径是保存在session中

所以需要我们把session里面的数据清除了,然后再设置跳到需要调的界面,下面是它的操作步骤:

1.首先自己写一个类继承类FormAuthenticationFilter,具体的代码如下:

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.shiro.authc.AuthenticationToken;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.web.filter.authc.FormAuthenticationFilter;
import org.apache.shiro.web.util.WebUtils;

/**
* @author Abby
*
*/
public class MyFormAuthenticationFilter extends FormAuthenticationFilter{
@Override
protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request,
ServletResponse response) throws Exception {
WebUtils.getAndClearSavedRequest(request);
WebUtils.redirectToSavedRequest(request, response, "/main.do");
return false;
}
}

2.在shiro.xml文件里面配置如下的代码:

<bean id="myFormAuthenticationFilter" class="com.cn.demo.filter.MyFormAuthenticationFilter"/>

<property name="filters">
<map>
<entry key="authc" value-ref="myFormAuthenticationFilter" />
</map>
</property>

3.这样在启动进行登录的时候就不会报错404的错误了

4.在这里注意了,假如配置文件里面的过滤器有多个的时候,如果有多个value-ref就需要如下的配置:

<property name="filters">
<map>
<entry key="logout" value-ref="systemLogoutFilter" />
<entry key="authc" value-ref="myFormAuthenticationFilter" />
</map>
</property>

上一篇:第二十六课 典型问题分析(Bugfix)


下一篇:Java中String的常用方法总结