第一步:配置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...