afterInvocationManager
Spring2010. 5. 31. 10:17
In our application, only principals with permissions to read the given customer should be allowed to obtain it. To make this check, the
http://www.denksoft.com/wordpress/web-development/acl-spring-security-tutorial/
참고 하고 있는 블로그에 있는 내용인데.. 뭔말이야 @_@;;
일단 오브젝트를 겟 한 다음에 권한을 체크 한다는 내용 같다.
그게 무슨말이야.!!!
그전 메소드 시큐리티에서는 오브젝트를 get 하기 전에, 즉 쿼리를 날리기 전에 보안 검사를 하고 있는데,
이것은 쿼리를 실행 한 후 오브젝트를 get 한 후에 이 오브젝트들을 하나 하나 보안 검사를 해서, 보안검사에 통과할 경우 오브젝트들을 보여준다.
오우 좋은데 @_@
그러니까 검색 한 다음에 검색 결과에서 필터링을 할 수 있다는 말!!
그럼 요곳들을 어떻게 쓰느냐.. 일단 아래 설정 처럼 설정 파일을 정의 해 주고.
그런 다음에 보안 설정을 할 메서드에 @Secured를 설정 해 주면 된다.
이렇게 해서
스프링 시큐리티는 대충 내맘대로 정리 완료??
Customer
instance is retrieved and passed to the AclEntryAfterInvocationProvider
. If the authenticated object does not have the permission to read it, then the provider will throw AccessDeniesException
.http://www.denksoft.com/wordpress/web-development/acl-spring-security-tutorial/
참고 하고 있는 블로그에 있는 내용인데.. 뭔말이야 @_@;;
일단 오브젝트를 겟 한 다음에 권한을 체크 한다는 내용 같다.
그게 무슨말이야.!!!
그전 메소드 시큐리티에서는 오브젝트를 get 하기 전에, 즉 쿼리를 날리기 전에 보안 검사를 하고 있는데,
이것은 쿼리를 실행 한 후 오브젝트를 get 한 후에 이 오브젝트들을 하나 하나 보안 검사를 해서, 보안검사에 통과할 경우 오브젝트들을 보여준다.
오우 좋은데 @_@
그러니까 검색 한 다음에 검색 결과에서 필터링을 할 수 있다는 말!!
그럼 요곳들을 어떻게 쓰느냐.. 일단 아래 설정 처럼 설정 파일을 정의 해 주고.
<sec:global-method-security secured-annotations="enabled" access-decision-manager-ref="businessAccessDecisionManager">
<sec:after-invocation-provider ref="afterAclCollectionRead"/>
<sec:after-invocation-provider ref="afterAclRead"/>
</sec:global-method-security>
<sec:after-invocation-provider ref="afterAclCollectionRead"/>
<sec:after-invocation-provider ref="afterAclRead"/>
</sec:global-method-security>
그런 다음에 보안 설정을 할 메서드에 @Secured를 설정 해 주면 된다.
@Secured( {"AFTER_ACL_COLLECTION_READ"})
public ArrayList<AclBbs> getList( PagingUtil pagingUtil) {
HashMap<String, Integer> params = new HashMap<String, Integer>();
params.put( PagingUtil.START, pagingUtil.getStart());
params.put( PagingUtil.LIMIT, pagingUtil.getLimit());
params.put( PagingUtil.TOTALCOUNT, pagingUtil.getTotalCount());
return aclBbsDAO.getList( params);
}
public ArrayList<AclBbs> getList( PagingUtil pagingUtil) {
HashMap<String, Integer> params = new HashMap<String, Integer>();
params.put( PagingUtil.START, pagingUtil.getStart());
params.put( PagingUtil.LIMIT, pagingUtil.getLimit());
params.put( PagingUtil.TOTALCOUNT, pagingUtil.getTotalCount());
return aclBbsDAO.getList( params);
}
이렇게 해서
스프링 시큐리티는 대충 내맘대로 정리 완료??