SpringMVC框架整合Shiro驗證框架

2022-09-13 01:30:16 字數 2011 閱讀 3074

第一步:配置web.xml

shirofilter

org.springframework.web.filter.delegatingfilterproxy

targetfilterlifecycle

true

/*

/mydemo/login=anon

/mydemo/getverifycodeimage=anon

/main**=authc

/user/info**=authc

/admin/listuser**=authc,perms[admin:manage]

第三步:自定義的realm類

public class myrealm extends authorizingrealm   

// }

// }

// }

// }

// }else

// //為當前使用者設定角色和許可權

// ******authorizationinfo ******authorinfo = new ******authorizationinfo();

// ******authorinfo.addroles(rolelist);

// ******authorinfo.addstringpermissions(permissionlist);

******authorizationinfo ******authorinfo = new ******authorizationinfo();

//實際中可能會像上面注釋的那樣從資料庫取得

if(null!=currentusername && "mike".equals(currentusername))

//若該方法什麼都不做直接返回null的話,就會導致任何使用者訪問/admin/listuser.jsp時都會自動跳轉到unauthorizedurl指定的位址

return null;

} /**

* 驗證當前登入的subject

* @see 經測試:本例中該方法的呼叫時機為logincontroller.login()方法中執行subject.login()時

*/

@override

protected authenticationinfo dogetauthenticationinfo(authenticationtoken authctoken) throws authenticationexception else

//此處無需比對,比對的邏輯shiro會做,我們只需返回乙個和令牌相關的正確的驗證資訊

//說白了就是第乙個引數填登入使用者名稱,第二個引數填合法的登入密碼(可以是從資料庫中取到的,本例中為了演示就硬編碼了)

//這樣一來,在隨後的登入頁面上就只有這裡指定的使用者和密碼才能通過驗證

if("mike".equals(token.getusername()))

//沒有返回登入使用者名稱對應的******authenticationinfo物件時,就會在logincontroller中丟擲unknownaccountexception異常

return null;

} /**

* 將一些資料放到shirosession中,以便於其它地方使用

* @see 比如controller,使用時直接用httpsession.getattribute(key)就可以取到

*/

private void setsession(object key, object value)

} }

}

Spring S2SH框架整合(一)

1 思路 myeclipse環境,工程環境,tomcat環境的jdk版本保持一致 1 新建乙個專案,把編碼格式改為 utf 8 2 把 jsp 的編碼形式改為utf 8 3 在 lib 資料夾中建立小包,區分不同的 jar 包 4 建專案 s2sh sh,再建src config test 三個 s...

SpringMVC整合hibernate的問題

我想實現多個查詢 類似於這樣的,三個文字框,填寫哪個按照哪個條件查詢,都不填就全查詢。這個的實現。repository public class userdaoimpl implements userdao 根據乙個起止日期查詢之後所有記錄 public listgetuserlistbydatet...

springMvc整合集群

springmvc整合集群 springmvc整合集群,集群的位址要都寫到,寫的形式不盡相同 mq集群連線 spring整合mq集群 那麼在集群下spring整合的時候需要修改位址方式 class org.springframework.jms.connection.cachingconnectio...