思路
shiro使用formauthenticationfilter進行表單認證,驗證校驗的功能應該加在formauthenticationfilter中,在認證之前進行驗證碼校驗。
需要寫formauthenticationfilter的子類,繼承formauthenticationfilter,改寫它的認證方法,在認證之前進行驗證碼校驗。
自定義formauthenticationfilter
public
class
customformauthenticationfilter
extends
formauthenticationfilter
return
super.onaccessdenied(request, response);
}}
配置自定義formauthenticationfilter spring-shiro.xml
id="shirofilter"
class="org.apache.shiro.spring.web.shirofilte***ctorybean">
name="securitymanager"
ref="securitymanager" />
name="loginurl"
value="/login.action" />
name="successurl"
value="/first.action"/>
name="unauthorizedurl"
value="/refuse.jsp" />
name="filters">
key="authc"
value-ref="formauthenticationfilter" />
map>
property>
id="formauthenticationfilter"
class="cn.itcast.ssm.shiro.customformauthenticationfilter ">
name="usernameparam"
value="username" />
name="passwordparam"
value="password" />
name="remembermeparam"
value="rememberme"/>
bean>
在login.action對驗證錯誤 進行解析
}//此方法不處理登陸成功(認證成功),shiro認證成功會自動跳轉到上乙個請求路徑
//登陸失敗還到login頁面
return
"login";
}在filter配置匿名訪問驗證碼jsp
驗證碼 簡單驗證碼識別
這裡的驗證碼是內容非常簡單的,結構非常清晰的 這裡的驗證碼是內容非常簡單的,結構非常清晰的 這裡的驗證碼是內容非常簡單的,結構非常清晰的 興之所至之所以說簡單,我覺得是這樣的 抽了五張驗證碼扔進ps,50 透明度,長這樣 只有數字為內容 每張圖的數字都在固定位置 沒有太大的干擾因素 數字字型,形態完...
驗證碼一(驗證碼生成)
根據手機好查詢密碼 return type description code for i 0 i 6 i 4位驗證碼也可以用rand 1000,9999 直接生成 將生成的驗證碼寫入session,備驗證時用 session start session verify num code 建立,定義顏色...
12306驗證碼 驗證碼的架構
最近和眾屌絲一樣,在12306上面刷著春節回家的票。與她大戰無數個回合之後,終於搶到了一張回家的高鐵票,不斷感慨最近人品還不錯。當前,在使用12306的過程中,充滿很多的心酸,念叨了鐵道部的親人很多次 罪過 其中最讓人糾結的一項即是 驗證碼。12306採用驗證碼,無疑是一種很不錯的措施,可以在一定程...