하자의 첫 시작을 기다리고
compile ": shiro : 1.1.4"
인증 컨트롤러와 와일드 카드가 필요합니다. ALM :
grails create-auth-controller
grails create-wildcard-realm
지금의이
bootstrap.groovy
에 필요한 역할과 권한을 가진 더미 사용자를 만들 수 :
import org.apache.shiro.crypto.hash.Sha256Hash
class BootStrap {
def init = { servletContext ->
def roleUser = new ShiroRole(name:'USER')
roleUser.addToPermissions('auth:*')
roleUser.addToPermissions('controller:action')
roleUser.save(flush:true, failOnError: true)
def testUser = new ShiroUser(username:'kermit',passwordHash:new Sha256Hash("password").toHex())
testUser.addToRoles(roleUser)
testUser.save(flush:true, failOnError: true)
}
def destroy = {
}
}
가
role.User.addToPermissions
라인을 살펴보십시오. 여기에서 컨트롤러와 작업에 권한을 부여합니다. 역할에 권한이없는 경우 사용자는 액세스가 거부 된 페이지로 리디렉션됩니다. shiro 플러그인 페이지에 권한을 지정하는 방법에 대한 설명이 있습니다.
http://www.grails.org/plugin/shiro 나머지 응용 프로그램 기능에 대한 권한을 추가해야합니다. 이러한 권한을 사용자에게 직접 추가 할 수도 있습니다. 테스트를 위해 유용하거나 특별한 역할을 위해 새 역할을 설정하지 않으려는 경우가 있습니다.
btw : 현재 shiro 버전에서는 작동하지 않는 sha1hash가 아니라 sha256hash를 사용해야합니다.
class SecurityFilters {
def filters = {
all(uri: "/**") {
before = {
// Ignore direct views (e.g. the default main index page).
if (!controllerName) return true
// Access control by convention.
accessControl()
}
}
}
}
이 모든 컨트롤러에 대한 액세스 제어를 설치하지만보기 (색인 페이지)를 직접하지 않습니다 : 우리가해야 할
마지막은 /conf/SecurityFilters.groovy
클래스를 만드는 것입니다.
지금 그것을 시도하고 프로젝트를 실행하는 데 도움이
grails run-app
희망을!
친애하는 Ralf. 물론 우리는 사용자 및 역할 도메인 클래스를 추가해야합니다. 사용자 및 역할 도메인의 컨텐트에서 편집 할 수 있습니까? 부디. :) 또한 grails generate-views 명령을 사용하여 뷰를 생성해야합니까? – Shah
예제가 완료되어 작동합니다 - ShiroRole 및 ShiroUser가 위의 명령문에 의해 생성됩니다! – rdmueller
친애하는 랄프 당신 Gudings 완벽한 Thnks 있습니다. 글쎄 지금 나는 이미 사용자 및 역할 클래스와 인덱스 페이지를 갖고 싶습니다. (조회수). UserController라는 컨트롤러가 있고 로그인 및 로그 아웃 동작이 있습니다. 이제 어떻게 그 보안을 해당 코드에 적용 할 수 있습니까? – Shah