시큐리티 인증 권한 제외 작업시 질문드립니다.
- 작성자 :
- 개*자
- 작성일 :
- 2022-02-14 00:31:46
- 조회수 :
- 1,896
- 구분 :
- 개발환경 / 3.10
- 진행상태 :
- 완료
Q
보통 시큐리티 작업할떄
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
List<String> authoroities = EgovUserDetailsHelper.getAuthorities();
Object o = EgovUserDetailsHelper.getAuthenticatedUser();
if (!isAuthenticated) {
map.addAttribute("message", " 로그인X");
return "loginLayout/egovframework/uat/uia/EgovLoginUsr";
}
이런식으로 인증정보를 받아오는거 까지 성공을 했고 이 정보들로 각각의 url을 제어하기에는 너무 코드가 중복되는 것이 많다고 판단을 했고
그래서 아에 context-security 에서 1차적으로 거르고 난뒤에 세부적인 것들을 controller 쪽에서 거르자 라고 생각했습니다 .그래서
간소화 메뉴얼 다 찾아봤고 구글 검색도 다해보고 하니 http 태그를 써야할꺼같은데요 context-security.xml파일에요
tablib.jar 부분도 메뉴얼 보고 맞춰서 버전 정보찾아 넣었구요 .
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>4.2.13.RELEASE</version>
</dependency>
context-security.xml에서 아래 내용을 첨부했더니 에러가 발생했습니다 .
<security:http auto-config="true" use-expressions="true">
<security:intercept-url pattern="/member/**" access="hasAnyRole('ROLE_MEMBER','ROLE_ADMIN')"/>
<security:intercept-url pattern="/user/**" access="hasAnyRole('ROLE_USER','ROLE_MEMBER','ROLE_ADMIN')"/>
<security:intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')"/>
<security:intercept-url pattern="/**" access="permitAll"/>
</security:http>
Caused by: java.lang.IllegalArgumentException: A universal match pattern ('/**') is defined before other patterns in the filter chain, causing them to be ignored. Please check the ordering in your <security:http> namespace or FilterChainProxy bean configuration
간소화 서비스, All -in -one 시큐리티 부분 전부 확인 했으니 메뉴얼 확인 말고 http expression 어떻게 써야 하는지 여부를 알려주시면 감사하겠습니다
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
List<String> authoroities = EgovUserDetailsHelper.getAuthorities();
Object o = EgovUserDetailsHelper.getAuthenticatedUser();
if (!isAuthenticated) {
map.addAttribute("message", " 로그인X");
return "loginLayout/egovframework/uat/uia/EgovLoginUsr";
}
이런식으로 인증정보를 받아오는거 까지 성공을 했고 이 정보들로 각각의 url을 제어하기에는 너무 코드가 중복되는 것이 많다고 판단을 했고
그래서 아에 context-security 에서 1차적으로 거르고 난뒤에 세부적인 것들을 controller 쪽에서 거르자 라고 생각했습니다 .그래서
간소화 메뉴얼 다 찾아봤고 구글 검색도 다해보고 하니 http 태그를 써야할꺼같은데요 context-security.xml파일에요
tablib.jar 부분도 메뉴얼 보고 맞춰서 버전 정보찾아 넣었구요 .
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>4.2.13.RELEASE</version>
</dependency>
context-security.xml에서 아래 내용을 첨부했더니 에러가 발생했습니다 .
<security:http auto-config="true" use-expressions="true">
<security:intercept-url pattern="/member/**" access="hasAnyRole('ROLE_MEMBER','ROLE_ADMIN')"/>
<security:intercept-url pattern="/user/**" access="hasAnyRole('ROLE_USER','ROLE_MEMBER','ROLE_ADMIN')"/>
<security:intercept-url pattern="/admin/**" access="hasRole('ROLE_ADMIN')"/>
<security:intercept-url pattern="/**" access="permitAll"/>
</security:http>
Caused by: java.lang.IllegalArgumentException: A universal match pattern ('/**') is defined before other patterns in the filter chain, causing them to be ignored. Please check the ordering in your <security:http> namespace or FilterChainProxy bean configuration
간소화 서비스, All -in -one 시큐리티 부분 전부 확인 했으니 메뉴얼 확인 말고 http expression 어떻게 써야 하는지 여부를 알려주시면 감사하겠습니다
환경정보
-
- OS 정보 :
- 표준프레임워크 버전 :
- JDK(JRE) 정보 :
- WAS 정보 :
- DB 정보 :
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
표준프레임워크의 경우 데이터베이스를 이용한
인증인가 설정을 지원하고 있습니다.
또한, 시큐리티 간소화 서비스를 사용하는 경우에는
스프링시큐리티의 복잡한 설정을 간단하게 사용하기 위해서
단순하고 사용하기 쉽게 만들어진 서비스이므로
사용할수 있는 속성에 제한이 있으므로
간소화서비스 보다는 업무에 맞게 별도로 구성하셔서
사용해보시기 바랍니다.
감사합니다.
표준프레임워크센터입니다.
표준프레임워크의 경우 데이터베이스를 이용한
인증인가 설정을 지원하고 있습니다.
또한, 시큐리티 간소화 서비스를 사용하는 경우에는
스프링시큐리티의 복잡한 설정을 간단하게 사용하기 위해서
단순하고 사용하기 쉽게 만들어진 서비스이므로
사용할수 있는 속성에 제한이 있으므로
간소화서비스 보다는 업무에 맞게 별도로 구성하셔서
사용해보시기 바랍니다.
감사합니다.