HardCoding
1k
2020-02-03 12:14:15 작성 2020-02-03 13:41:22 수정됨
5
177

[질문수정] Spring Security관련 xml파일을 application.protertie 파일에 등록하고 싶습니다.


[수정전]

Spring Security를 통해서 접근권한을 관리하려고 합니다.


해당 설정은 기존 프로젝트의 구조에서 커스터마이징 하고있고

제가 만든 로그인 페이지로 보내고 싶으나 그게 안되는 상황입니다.


콘솔에는 "Access is denied (user is anonymous); redirecting to authentication entry point "

와 같이 에러가 찍혀 있고

spring-security.xml.xml파일의 form-login태그안에 login-page attribute에 /login이라고

컨트롤러의 함수를 작성하였습니다.


그리고

<intercept-url pattern="/login" access="permitAll" />

위와 같이 해당 경로는 permitAll로 하여 모든 권한을 접근 허용했는데 에러가 발생하고

제가 띄우고 싶은 화면이 안나오고 있습니다


이럴때는 어떻게 해야하나요?


[수정후]

위 수정전 질문은 application.properties에 등록을 안해줘서 생긴 오류같습니다.

스프링시큐리티 관련 설정 xml을 application.properties에 등록해주려고 하는데

해당 classpath등록을 어떻게 해야하는지 모르겠습니다ㅜㅜ

0
0
  • 답변 5

  • B급 개발자
    513
    2020-02-03 13:43:29 작성 2020-02-03 13:44:24 수정됨

    1. 디폴트 login-processing-url 이 /login 으로 되어 있을텐데 혹시 이것과 로그인 페이지가 충돌나지 않도록 조치하셨는지요?


    2. 위에 올려주신 설정 대신 아래와 같은 설정을 추가해보시면 어떨까요? 차이점은 본문의 설정은 spring security의 filter가 동작하면서 해당 URL 패턴에 대한 권한을 설정하는 것이고 아래는 아예 security 설정의 영향에서 ignore하는 것입니다.

    <intercept-url pattern="/login" filters="none"/>


    0
  • HardCoding
    1k
    2020-02-03 14:02:29

    B급 개발자

    동일하게 에러가 발생하였습니다


    1번사항은 login-processing-url을 login-page와 다르게 하였습니다.

    2번은 적용이 안되는것 같습니다.


    혹시 application.properties와 상관이 없는건가요?

    그쪽에 spring-security.xml을 등록안해줬습니다.

    0
  • B급 개발자
    513
    2020-02-03 15:41:44 작성 2020-02-03 15:42:56 수정됨

    1. application.properties 파일에 선언한다고 하면 spring boot이 아닐까 싶은데요. 그러면 java config가 훨씬 편하실 겁니다.


    2. "Access is denied (user is anonymous); redirecting to authentication entry point " 라는 에러 메시지는 로그인이 필요한 화면에 인증이 안된 상태로 접근할 시에 나오는 메시지 입니다. ignore 설정을 하셨는데 로그인 페이지로 이동할 때 이런 오류가 나오는 것이라면 뭔가 설정이 제대로 안되었다고 추측해 볼 수 있겠네요. 전체적인 설정과 로그를 봐야 알 수 있을 것 같습니다.


    3. 위 2번의 메시지가 나온다는 것은 security 설정이 되어 있다고 볼 수 있습니다.

    0
  • HardCoding
    1k
    2020-02-03 15:55:48

    B급 개발자


    네 Spring Boot 프로젝트 입니다..


    Java Config로 하면 더 편하다는 말씀을 듣고

    참고링크 의 SecurityConfig.java

    부분만 따로 만들어서 설정하려고 했는데 SecurityConfig 파일을 등록해주거나 컴파일 해주는 부분이 안보이네요..

    그냥 생성해서 만들면 자동으로 설정을 해주는 건가요?

    0
  • B급 개발자
    513
    2020-02-03 16:15:09

    튜토리얼 수준의 구현만 하려는 토이 프로젝트입니까? 아님 실제 서비스 운영을 위한 프로젝트입니까? 후자라면 링크하신 내용보다 훨씬 더 구현을 많이 하셔야 한다고 미리 말씀드리고 싶습니다.


    1. 우선 질문하신 SecurityConfig 클래스에  @Configuration 과 @EnableWebSecurity 을 선언해 주세요.

    2. 위 케이스에서 후자라면 @SpringBootApplication 선언의 exclude 설정에  SecurityAutoConfiguration.class 를 포함시키고 에러 처리를 직접 하시려면 ErrorMvcAutoConfiguration.class 도 포함해야 합니다.


    위 1,2의 설정에 의하여 SecurityConfig는 어플리케이션 로딩 시 인스턴스화 될 것입니다.



    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.