springboot整合Shiro,新增自定義filter後shiro的預設filter無法使用
阿新 • • 發佈:2019-01-09
在springboot中整合shiro,發現再添加了自定義的filter後預設的filter無法使用。
猜測是自定義的filter被放在了預設的filter前面,導致先被自定義的filter攔截了。
證實了的確是我所猜想的那般,自定義的filter被放在了shiro預設filter的前面。
根據上面文章作者所說,不要將自定義的在spring容器中進行註冊
不過這樣又導致了一個新的問題,自定義的filter中無法將spring容器中的bean注入到變數中
注意,這裡的Resource註解是後來才去掉的,不要跟我說是因為註釋掉了才無法注入。 最後的解決辦法就是手動從spring容器中獲取bean,然後進行賦值:
這裡附上SpringContextUtils的程式碼
不過這樣又導致了一個新的問題,自定義的filter中無法將spring容器中的bean注入到變數中
注意,這裡的Resource註解是後來才去掉的,不要跟我說是因為註釋掉了才無法注入。 最後的解決辦法就是手動從spring容器中獲取bean,然後進行賦值:
這裡附上SpringContextUtils的程式碼
@Component public class SpringContextUtils implements ApplicationContextAware { private static ApplicationContext context; public void setApplicationContext(ApplicationContext context) throws BeansException { SpringContextUtils.context = context; } public static ApplicationContext getContext(){ return context; } }