스프링 관련 - context-security.xml 에서 hasIpAddress 적용이 안됩니다
- 작성자 :
- 김*욱
- 작성일 :
- 2016-04-06 17:02:11
- 조회수 :
- 1,319
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
아래와 같이 질문 올렸는데 다른 방식으로 해결했습니다.
해결:
jsp에 체크 부분을 넣어서 해결했습니다. ㅠㅠㅠ
답이 딱 나오면 좋겠지만 일단 설정방식은 포기하는 걸로 하겠습니다...
-----------------------
관리단 페이지를 로그인 전부터 특정 아이피외에는 접근 못하게 하려는 것인데(첫페이지는 /login.do)
아래와 같은 식으로 해보는데 안됩니다.
pattern="/**/*.do" pattern="/**" pattern="/login.do" 식으로 바꿔보거나 하면 was 재시작시 뭔가 support 안되는 것처럼 오류가 나고요
<security:intercept-url pattern="/login.do" access="isAnonymous()" /> 부분에서 access 부분만
hasIpAddress('xx....xx') 로 해서 해도 역시 구동시 오류가 나고 안됩니다.
혹시 아래의 다른 설정 부분과 충돌나나 해서 지우고 해보거나 해봐도 소용 없거나 구동시 오류가 나거나 합니다.
그리고 아이피가 막아진다면 접속금지 쪽으로 가게 하고 싶은데(/dadeny.do 임) 이 부분은 설정에서 할 수가 있는지도 궁금합니다.
아니면 현재 /dadeny.do로 가게 되어있는 클래스를 타게 되서 별도 설정이 없는 것인지..(아마 이렇게 되었을 듯 합니다.)
이틀 간 문제를 검색해 보고 있는데 알 수가 없네요.
파일첨부했습니다.
<security:http auto-config="true"
access-denied-page="/login.do" use-expressions="true">
<security:intercept-url pattern="/" access="hasIpAddress('xx....xx')" />
<security:intercept-url pattern="/login.do" access="isAnonymous()" />
...
* 참고로 was 재시작시 오류가 나는 경우는 이런 식입니다.
2016-04-06 15:51:09,736 INFO [org.springframework.security.config.http.DefaultFilterChainValidator] Unable to check access to the login page to determine if anonymous access is allowed. This might be an error, but can happen under normal circumstances.
java.lang.UnsupportedOperationException: public abstract java.lang.String javax.servlet.ServletRequest.getRemoteAddr() is not supported
at org.springframework.security.web.UnsupportedOperationExceptionInvocationHandler.
해결:
jsp에 체크 부분을 넣어서 해결했습니다. ㅠㅠㅠ
답이 딱 나오면 좋겠지만 일단 설정방식은 포기하는 걸로 하겠습니다...
-----------------------
관리단 페이지를 로그인 전부터 특정 아이피외에는 접근 못하게 하려는 것인데(첫페이지는 /login.do)
아래와 같은 식으로 해보는데 안됩니다.
pattern="/**/*.do" pattern="/**" pattern="/login.do" 식으로 바꿔보거나 하면 was 재시작시 뭔가 support 안되는 것처럼 오류가 나고요
<security:intercept-url pattern="/login.do" access="isAnonymous()" /> 부분에서 access 부분만
hasIpAddress('xx....xx') 로 해서 해도 역시 구동시 오류가 나고 안됩니다.
혹시 아래의 다른 설정 부분과 충돌나나 해서 지우고 해보거나 해봐도 소용 없거나 구동시 오류가 나거나 합니다.
그리고 아이피가 막아진다면 접속금지 쪽으로 가게 하고 싶은데(/dadeny.do 임) 이 부분은 설정에서 할 수가 있는지도 궁금합니다.
아니면 현재 /dadeny.do로 가게 되어있는 클래스를 타게 되서 별도 설정이 없는 것인지..(아마 이렇게 되었을 듯 합니다.)
이틀 간 문제를 검색해 보고 있는데 알 수가 없네요.
파일첨부했습니다.
<security:http auto-config="true"
access-denied-page="/login.do" use-expressions="true">
<security:intercept-url pattern="/" access="hasIpAddress('xx....xx')" />
<security:intercept-url pattern="/login.do" access="isAnonymous()" />
...
* 참고로 was 재시작시 오류가 나는 경우는 이런 식입니다.
2016-04-06 15:51:09,736 INFO [org.springframework.security.config.http.DefaultFilterChainValidator] Unable to check access to the login page to determine if anonymous access is allowed. This might be an error, but can happen under normal circumstances.
java.lang.UnsupportedOperationException: public abstract java.lang.String javax.servlet.ServletRequest.getRemoteAddr() is not supported
at org.springframework.security.web.UnsupportedOperationExceptionInvocationHandler.
A
김종욱님, 안녕하세요.
문제에 대해 일단은 해결을 하셨다고 하니 다행입니다.
시큐리티를 사용하지 않더라도 admin 관련 인터셉터를 추가하시면 ip체크를 통한 관리자 페이지 접근 여부를 확인할 수 있습니다.
hasIpAddress 부분은 내부적으로 테스트 후 위키가이드 추가 등을 검토하도록 하겠습니다.
감사합니다.
문제에 대해 일단은 해결을 하셨다고 하니 다행입니다.
시큐리티를 사용하지 않더라도 admin 관련 인터셉터를 추가하시면 ip체크를 통한 관리자 페이지 접근 여부를 확인할 수 있습니다.
hasIpAddress 부분은 내부적으로 테스트 후 위키가이드 추가 등을 검토하도록 하겠습니다.
감사합니다.