2014-01-08 3 views
1

Grails에서 Spring Security 플러그인을 사용하고 있습니다. 일부 보안 조치에는 주석을 사용하지만 그렇지 않은 컨텐츠에는 사용하지 않는 컨트롤러가 있습니다. 그리고 확실하게 sec:isLoggedIn 및 기타 sec:loggedInUserInfo 태그는 보안 조치에 대해 작동하지만 사용자가 비보안보기에 로그인 한 경우에도 항상 로그인되지 않은 것으로 표시됩니다. 여기 내 컨트롤러는 모습입니다 같은 :Grails Spring Security : 인증 정보를 표시하지 않는 익명 페이지

class ContentController { 
    def anonymousContent() { 
     getContent(params, 'pages') 
    } 

    @Secured(['ROLE_USER', 'ROLE_ADMIN']) 
    def secureContent() { 
     getContent(params, 'secure') 
    } 

    private getContent(params, path) { 
     def viewPath = "${path}/${params.view}" 
     render(view: viewPath, model: params) 
    } 
} 

나는 기본적으로 내가 AuthenticationProvider, AbstractAuthenticationToken, LoginUrlAuthenticationEntryPoint, AbstractAuthenticationProcessingFilter 같은 몇 가지 클래스를 오버라이드 (override)가있는 SSO 솔루션의 일부로 일부 사용자 지정 인증을 사용하고 있음을 언급해야한다,하지만 난 같으면 이 문제를 일으켜야한다고 생각하지 않습니다.

모든 아이디어를 얻을 수 있습니다. 감사합니다

답변

0

이 문제가 발생하는 다른 모든 사람들은 mod_proxy와 관련된 문제를 발견 할 수있었습니다. 서블릿이 내 애플 리케이션을위한 세션 쿠키를 읽는 데 어려움을 겪게하는 내 컨텍스트 경로를 숨기기 위해 그것을 사용하고 있었다. 인증되지 않은 페이지의 경우 매번 완전히 새로운 세션을 만들었습니다. 인증 된 페이지의 경우 새 세션도 생성되지만 SSO 인증 메커니즘 덕분에 각 요청에 대해 실제로 다시 인증됩니다. 아마 값 비싼 조작이기 때문에 우리는 그것을 잘 잡았을 것입니다. 대답은 실제로 tomcat 구성에서 쿠키 경로 (setCookiePath)를 루트 ('/')로 설정하는 것이 었습니다. 희망은 다른 사람을 도와줍니다 :)

관련 문제