在shiro框架中,未登入就是未認證,登陸了才算認證,認證後只能使用一些基本許可權,使用更多的許可權需要授權,認證和授權是不同的概念。
一、useraction中的相關**
未認證時會呼叫這段登陸的**,需要在這段**中加入shiro框架,通過securityutils呼叫當前使用者,並且註冊乙個認證令牌public string login()catch(exception e)
//沒有異常,驗證正確,將查詢到的user存入session
user getuser = (user) subject.getprincipal();
servletactioncontext.getrequest().getsession().setattribute("loginuser", getuser);
return "home";
}else
}
二、資料橋梁realm的**:
如果賬號不存在或者密碼錯誤,都會報相應的錯誤,通過struts.xml定義全域性異常捕捉就可以返回相應的頁面或文字public class bosrealm extends authorizingrealm
//簡單認證資訊物件
authenticationinfo info = new ******authenticationinfo(user, user.getpassword(), this.getname());
//框架負責比對資料庫中的密碼和頁面輸入的密碼是否一致
return info; }
/*** 授權方法
*/protected authorizationinfo dogetauthorizationinfo(principalcollection args)
}
使用shiro實現登陸認證
shiro認證步驟 1.收集subject提交的身份和證明 usernamepasswordtoken token new usernamepasswordtoken user.getusername user.getpassword 2.向authenticating提交身份和證明 subject...
shiro登陸認證過程原理
問題 shiro到底是如何認證的呢,原理是啥呢?1 在登入頁面開始登入 輸入使用者名稱和密碼 2 後台接收到了登入請求,執行以下 然後開始認證 登入的過程將使用者名稱和密碼傳入usernamepasswordtoken中 3 然後進入delegatingsubject的login方法 在這裡所有安全...
Python學習之登陸認證
需求 讓使用者輸入使用者名稱密碼 認證成功後顯示歡迎資訊 輸錯三次後退出程式 可以支援多個使用者登入 提示,通過列表存多個賬戶資訊 如下 1 coding utf 8 2 date 3 12 2018 34 count 0 5 users 利用字典儲存多個使用者名稱 密碼 6 name input ...