使用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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM