Grails 애플리케이션에 Spring Security Core를 설치하고 s2-quickstart
을 사용하여 설정합니다. '/'가 로그인 및 로그 아웃 작업을 처리하도록합니다. 로그인하지 않은 사용자는 루트 페이지 만 액세스 할 수 있다는 것을 의미합니다. 실제로 '/'를 제외한 모든 항목은 'ROLE_ADMIN'역할이없는 사용자에 대해서는 차단되어야합니다. 난 내 모든 컨트롤러에 @Secured(['ROLE_ADMIN'])
을 설정하고 내의 index.gsp이 같은 추가Grails, Spring Security Core - 애플리케이션에서 제거/로그인/인증
grails.plugin.springsecurity.auth.loginFormUrl = '/'
grails.plugin.springsecurity.auth.ajaxLoginFormUrl = '/'
grails.plugin.springsecurity.failureHandler.defaultFailureUrl = '/'
grails.plugin.springsecurity.failureHandler.ajaxAuthFailUrl = '/'
grails.plugin.springsecurity.logout.postOnly = false
grails.plugin.springsecurity.userLookup.userDomainClassName = 'adminpanel.security.SecUser'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'adminpanel.security.SecUserSecRole'
grails.plugin.springsecurity.authority.className = 'adminpanel.security.SecRole'
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/': ['permitAll'],
'/index': ['permitAll'],
'/index.gsp': ['permitAll'],
'/**/js/**': ['permitAll'],
'/**/css/**': ['permitAll'],
'/**/images/**': ['permitAll'],
'/**/favicon.ico': ['permitAll']
]
:
<head>
<sec:ifAllGranted roles="ROLE_ADMIN">
<meta name="layout" content="main"/>
</sec:ifAllGranted>
<sec:ifNotGranted roles="ROLE_ADMIN">
<meta name="layout" content="login"/>
</sec:ifNotGranted>
<title>Home Page - Admin Panel</title>
</head>
내가 Config.groovy 파일에서 로그인 루트 페이지에 양식을 설정하고 다음과 같은 구성을 추가
구성 법과 :
두 가지 문제가 있습니다 ks를 예상했지만 브라우저에 입력 할 때 :
localhost:8080/AdminPanel/login/auth
페이지가 여전히 존재하며 로그 아웃 한 사용자도 액세스 할 수 있습니다. 이 URL을 완전히 삭제하고 싶습니다. 로그인했거나 로그 아웃 한 사용자는 액세스 할 수 없어야합니다.사용자가 내가
"login"
에 레이아웃을 변경해야 내의 index.gsp에서 위의 mentiond 코드를 가지고 있다는 사실에도 불구하고,/login/auth
보기,"main"
레이아웃을 사용하여 렌더링 로그 아웃 경우에도 마찬가지입니다. 왜?
미리 감사드립니다.
기본'/ login/auth' 매핑을 비활성화하는 것이 가장 좋지만 로그인 페이지에'/'을 매핑하는 방법을 모르겠다면이 줄을'UrlMappings'에 추가하십시오 :''/ "(controller :"login ", action :"auth ")'# 2의 경우, 기본 SpringSec'login/auth.gsp'보기가 메인 레이아웃을 적용합니다. –
@Andrew Addin UrlMappings이 나를 위해 아무 것도 변경하지 않았습니다. URL을 변경하지만 인덱스로 전혀 리디렉션되지 않습니다. 여전히/login/auth/page로 렌더링됩니다. LoginController를 변경해야하는 것처럼 보이기 시작합니다 ... – kmb
마지막으로 추가 URL 매핑을 제거하고 auth.gsp를 변경했습니다.
<메타 이름 = '레이아웃'콘텐츠 = '로그인'/> 모든 것이 잘 작동하는 것 같다,하지만 난 $ {플래시 액세스 할 수 없습니다 : 지금은 것 같습니다.메시지} 내 레이아웃에,하지만 어쩌면 그냥 뭔가 잘못을 할. – kmb