shiro 통합 swagger 주의사항
shiro 설정
shiro Filter 의 설정 은 다음 과 같 습 니 다.
@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
//Shiro ,
shiroFilterFactoryBean.setSecurityManager(securityManager);
Map<String, Filter> filterMap = new LinkedHashMap<>();
filterMap.put("authc", new AjaxPermissionsAuthorizationFilter());
shiroFilterFactoryBean.setFilters(filterMap);
/* shiro Map
* Map key(xml value ) '/' HttpServletRequest.getContextPath()
* anon: , , .do .jsp * , login.jsp?main
* authc: , Shiro org.apache.shiro.web.filter.authc.FormAuthenticationFilter
*/
Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
/* , , / ** : , ;
authc: url ; anon: url */
filterChainDefinitionMap.put("/", "anon");
filterChainDefinitionMap.put("/static/**", "anon");
filterChainDefinitionMap.put("/login/auth", "anon");
filterChainDefinitionMap.put("/login/logout", "anon");
filterChainDefinitionMap.put("/error", "anon");
filterChainDefinitionMap.put("/**", "authc");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return shiroFilterFactoryBean;
}
우선 일반적인 필터 줄 은 다음 과 같 습 니 다.
filterChainDefinitionMap.put("/swagger-ui.html", "anon");
filterChainDefinitionMap.put("/swagger-resources", "anon");
filterChainDefinitionMap.put("/v2/api-docs", "anon");
filterChainDefinitionMap.put("/webjars/springfox-swagger-ui/**", "anon");
shiro 를 다시 열 고 실행 합 니 다.swagger 2 페이지 는 정상적으로 접근 하지만 프로그램 로그 출력 은 접근 할 수 있 는 권한 이 있 습 니 다.오류 가 발생 했 습 니 다.그래서 계속 조사 하고 제 한 된 요 구 는 다음 과 같다.
http://localhost:8080/configuration/security
http://localhost:8080/configuration/ui
그래서 계속 줄 추가:
filterChainDefinitionMap.put("/configuration/security", "anon");
filterChainDefinitionMap.put("/configuration/ui", "anon");
최종 설정:
@Bean(name = "shiroFilter")
public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
//Shiro ,
shiroFilterFactoryBean.setSecurityManager(securityManager);
Map<String, Filter> filterMap = new LinkedHashMap<>();
filterMap.put("authc", new AjaxPermissionsAuthorizationFilter());
shiroFilterFactoryBean.setFilters(filterMap);
/* shiro Map
* Map key(xml value ) '/' HttpServletRequest.getContextPath()
* anon: , , .do .jsp * , login.jsp?main
* authc: , Shiro org.apache.shiro.web.filter.authc.FormAuthenticationFilter
*/
Map<String, String> filterChainDefinitionMap = new LinkedHashMap<>();
/* , , / ** : , ;
authc: url ; anon: url */
filterChainDefinitionMap.put("/", "anon");
filterChainDefinitionMap.put("/static/**", "anon");
filterChainDefinitionMap.put("/login/auth", "anon");
filterChainDefinitionMap.put("/login/logout", "anon");
filterChainDefinitionMap.put("/error", "anon");
//swagger
filterChainDefinitionMap.put("/swagger-ui.html", "anon");
filterChainDefinitionMap.put("/swagger-resources", "anon");
filterChainDefinitionMap.put("/v2/api-docs", "anon");
filterChainDefinitionMap.put("/webjars/springfox-swagger-ui/**", "anon");
filterChainDefinitionMap.put("/configuration/security", "anon");
filterChainDefinitionMap.put("/configuration/ui", "anon");
filterChainDefinitionMap.put("/**", "authc");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return shiroFilterFactoryBean;
}
메모:filter Chain DefinitionMap.put("/**","authc")는 맨 뒤에 두 어야 합 니 다.최종 결과:접근http://localhost:8080/api/swagger-ui.html 출현
이상 은 shiro 통합 swagger 가 주의해 야 할 부분 에 대한 상세 한 내용 입 니 다.shiro 통합 swagger 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
shiro 권한 부여Shiro 는 세 가지 방식 의 인증 을 지원 합 니 다. 본 교육 프로그램 은 첫 번 째 프로 그래 밍 방식 을 사용 하고 실제 와 웹 시스템 을 통합 하여 사용 한 후 두 가지 방식 을 사용 하도록 권한 을 부여...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.