programing

Spring security -

padding 2023. 11. 4. 10:17
반응형

Spring security -

저는 스프링부트 앱에 Oauth2를 구현했습니다.security-context.xml에는 다음 행이 있습니다.

<sec:intercept-url pattern="/trusted/**" access="isAnonymous()" />
<sec:intercept-url pattern="/**" access="isFullyAuthenticated()" />

인증을 받지 않고 /신뢰할 수 있는 모든 것을 사용할 수 있기를 바랍니다.그러나 신뢰할 수 있는 리소스(RESTful 리소스)에 액세스하려고 하면 인증을 요청하는 메시지가 표시됩니다.

제가 다른 걸 놓쳤나요?

[편집:] 저는 '제공된' Tomcat 인스턴스로 이 앱을 실행하고 있습니다.

신뢰할 수 있는 가로채기 식을 대체하면 됩니다.accessAttribute와 작동해야 합니다.

<sec:intercept-url pattern="/trusted/**" filters="none" />
<sec:intercept-url pattern="/**" access="isFullyAuthenticated()" />

Spring Security 3.1이 사용되지 않은 이후로filters, 당신은 사용해야 합니다.http태그를 지정하여 동일한 효과를 얻을 수 있습니다.

<http pattern="/trusted/**" security="none"/>

<http auto-config='true'>
  <intercept-url pattern="/**" access="isFullyAuthenticated()" />
  <form-login login-page='/login.jsp'/>
</http>

이것에 대해서는 여기서 더 자세히 보실있습니다.

<http>
<intercept-url pattern="/trusted/**" access="ROLE_USER,ROLE_GUEST" />
<intercept-url pattern="/messagePost.htm*" access="ROLE_USER" />
<intercept-url pattern="/messageDelete.htm*" access="ROLE_ADMIN" />
<anonymous username="guest" granted-authority="ROLE_GUEST" />
<remember-me />
</http>

<anonymous username="guest" granted-authority="ROLE_GUEST" />

ROLE_GUST와 같은 역할을 정의하고 위 코드가 하는 일을 언급할 수 있습니다.익명의 회원이라면 누구나 ROLE_GUEST의 URL 패턴에 액세스할 수 있습니다.

구성이 잘못되었습니다.지금 무슨 일이 일어나고 있는지 상상해 보세요. 스프링 보안 요원에게 아래에 있는 모든 것에 대한 익명 접근을 허용하라고 지시하고 있습니다./trusted/**그건 괜찮지만, 그 다음에 당신은 그것에게 모든 익명의 접근을 제한하라고 다시 말합니다./**- 당신의 응용 프로그램의 모든 경로인 것은 명백히 접근을 제한합니다./trusted/**뿐만 아니라.

구성을 다음과 같이 변경해야 합니다.

<sec:intercept-url pattern="/trusted/**" access="isAnonymous()" />
<sec:intercept-url pattern="/secure/**" access="isFullyAuthenticated()" />

효과가 있을 겁니다

언급URL : https://stackoverflow.com/questions/31507037/spring-security-allowing-anonymous-access

반응형