1創建一個SpringBoot項目
2在項目里定義一個接口,放在com.cy.pj.mail.service下,寫一個方法。
寫一個實現類取繼承接口,想要定義一個日志處理,想要以AOP的方式注入。
3寫一個測試類,要交給spring管理。
有輸出結果為hello cgb2006
4接著不去寫切面實現AOP的功能,至少得有通知,和切入點。先新建一個注解,這個注解在運行有效,希望注解描寫得方法為目標方法,有了注解,接下來還少一個通知。
借助此注解描述一個切入點方法
在實現類得上面
5寫一個通知得class,取實現一個接口,這個接口里得方法有一個功能,會取執行目標方法。最先得通知需要寫到切面對象里去。MethodInterceptor原先就是一個日志通知對象,里面有advice。
invocation可以看成一個連接點對象,放在了目標方法信息,可以通過反射獲得。
6現在又了切入點和通知,需要把對象放到advice里面去
這個advisor又叫顧問,它作用是告訴BeanProcessor,在這個切入點上,也就是(Pointcut)為目標對象創建對象,接下來就是寫Adcisor。Adcisor必須滿足一些要求,在Browse上繼承
這個對象要交給spring管理,所以@Component
method封裝了目標封裝對象
這就是判定方法是不是切入點的一個入口
接著
當前的springBoot需要配置DefauktAdvisorAutoProxyCreator
直接在啟動類里進行
方法名
運行結果。
shiro最核心的是SecurityManager,注意包是喲啊shiro包
@Bean是描述的方法為spring要管理的對象,方法名默認為bean的名稱,@Conponent是能描述類1
項換方法名就@Bean("aaaa")
2配置過濾規則,例如對那些請求進行認證,那些請求可以直接放行。spring容器在調用這個方法的時候,會按類型,為方法參數注入一個對象,相當于在方法上加了一個@AuTowired,如果又多個對象,可以
linkedHashMap是底層要求的
接下來寫對map的要求
下一步寫一個方法可以返回登入頁面。
在配置controller下寫返回頁面就是處理所有頁面請求的界面
還需要設置一下
除了靜態資源,其他訪問都需要通過認證
建立一個需求當輸入doIndexUI可以直接進入頁面
直接加map里面
總結 三不走
1 先進行配置對象,對象需要進行請求授權
2 配置ShiroFilerFactoryBean,負責創建過濾器工廠,由了過濾器,拿到請求,假如請求進行認證分析就需要DefaultWebSecurityManager,所以要把DefaultSecurityManager注入給ShiroFilterFactoryBean,因為它會把對象的引用傳給過濾器(filters),filters就會掉用這個方法DefaultSecurityManager來進行認證分析
認證分析請求流程
瀏覽器提供一個請求,token是用來封裝用戶信息的,Subject就是承載信息的車,提交給Secuirty manager,Secuirty manager還需要從數據庫去信息,和提交信息進行比對,就在傳遞給Authenticator的時候,這里面有一個認證方法,數據庫通過room??
認證信息和認證凡是不同,選擇認證策略。
大概步驟:1是寫在了doLogin方法里面,token封裝了信息,subject傳輸。還有一個是關聯Realm完成認證。
Realm拿到兩部分數據交給方法。主要寫controller,Realm,還有配置文件。
1數據層基于用戶名去找信息
3寫Realm繼承Aut啥的,可以重寫set和get。
操作1數據層:
2業務層,寫一個Realmclass
這個realm默認情況下有認證跟授權
1)注意這個是重寫,所以返回值要符合要求
接下來對比個數據庫里的。就是另一個重寫
取配置類把realm寫進去
別倒錯包
去控制層寫一個處理登入的方法,一個用戶名,一個方法。要先去取subject
之后去修改下配置類
可以測試了,個地方不對
上面部分補充。
user將來傳什么就取什么,已加密的密碼就是從數據庫取出來的
傳什么值=由構造方法決定,邏輯上講應該先寫后面的
寫2后加p
由登入就有退出
把數據清除,并跳轉回登入頁面。
設置一個登入錯誤的彈框,一個提示,定義一個同意的異常方法。cv
由個注解=@ControllerAdvice+@ResponseBody
授權刪除權限!!!
由了切入點,還得由通知
菜單頁面看到得都是授權標識
給用戶分配權限得過程
添加得時候
這個也有授權標識。
操作把這個標識符給
基于用戶找菜單
去用戶角色表
基于角色找菜單
基于菜單找授權標識
下面回到映射
下面業務層
來源:https://segmentfault.com/a/1190000024517798?utm_source=tuicool&utm_medium=referral