SpringMVC整合Shiro和Swagger產生的路徑過濾問題
阿新 • • 發佈:2018-11-16
SSM整合Swagger和Shiro時出現的問題:
一:啟動swagger報錯Unable to infer base url. This is common when using dynamic servlet
解決方法
- 在shiro配置檔案的自定義的過濾鏈中加上一下程式碼:
<!-- swagger有關的不攔截 --> /swagger-ui.html = anon /webjars/** = anon /v2/** = anon /swagger-resources/** = anon <!-- shiro提供了退出登入的配置`logout`, 會生成路徑為`logout`的請求,訪問這個地址即會退出當前賬戶並清空快取 --> /backend/admin/logout = logout
- swagger的配置類只能夠在SpringMVC的配置檔案中被掃描,不能交給spring容器處理。springMVC只是spring的一個子容器,存在父子關係。如果swagger讓spring的context載入,那麼swagger的那些url用springmvc的攔截器是攔截不到的
springMVC的配置檔案<!-- SpringMVC的配置檔案,包含網站跳轉邏輯的控制,配置 --> <context:component-scan base-package="com.zgz.traintickets.controller,swagger" use-default-filters="false"> <!-- 只掃描控制器 --> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> </context:component-scan>
spring的配置檔案之一:
- 注意事項
記得清理瀏覽器和伺服器的快取