Shiro 플러그인을 사용하여 Grails 애플리케이션의 일부 페이지 만 보안 설정하는 방법을 이해하는 데 어려움이 있습니다.Shiro 플러그인을 사용하여 Grails 애플리케이션의 일부 페이지 만 보안 설정
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 (auth:false) } } } }
나는 내 부트 스트랩에서 사용자를 만들었습니다 :
내 보안 필터에서 이것을 사용
def adminRole = new Role(name: "Administrator") adminRole.addToPermissions("secured1") adminRole.addToPermissions("secured2:create,save,edit,update") adminRole.save() def user = new User(username: "admin", passwordHash: new Sha512Hash("***").toHex()) user.addToRoles Role.findByName('Administrator') user.save()
을하고 그것을 작동합니다. 문제는 모든 컨트롤러/동작을 보호한다는 것입니다.
내 SecurityFilter에서 보호하려는 동작을 지정하지 않을 수도 있지만 사용 권한에서만 지정 가능합니다.하지만 가능합니까?
사실,하지만 내 생각에 그 역할에 대한 addToPermissions에서 정의 할 수 있었기 때문에 SecurityFilter에서이를 수행 할 필요가 없었습니다. 하지만 귀하의 입력에 감사드립니다 – sbglasius
필터는 액세스 제어가 이루어지는 곳입니다. 권한을 만들어 액세스 제어를 적용 할 수있는 마법이 있다면 공유하십시오. 여기에 와일드 카드 사용 권한에 대한 설명이 나와 있습니다. http://www.grails.org/plugin/shiro 와일드 카드 사용 권한은 MVC에서 사용하는 controller : action : id 레이아웃과 비슷하게 보일 수 있습니다. grails shiro plugin을 사용할 때이 둘 사이에는 관계가 없습니다. – Brandon
안녕하세요, Brandon : SecurityFilters가 필요하다는 것을 알고 있지만, 몇 가지를 쓰고 싶지는 않습니다. 그 중 하나만 사용하고 사용자 및 역할 테이블에서 나머지 권한을 처리하십시오. – sbglasius