2010-01-04 3 views

답변

1

스프링 보안은 각 사용자에게 하나 이상의 맞춤 역할이 할당되도록 지원합니다. 내 사이트에서는 사용자 정의 테이블을 사용하여 이러한 역할을 저장하고이 테이블에서 인증 공급자 bean을 선택하도록 설정합니다. 쿼리의 매개 변수는 사용자 이름 (내 사이트의 전자 메일 주소)입니다. 나는 사용자 당 1 개의 역할 만 지원하도록 설정했지만, 쉽게 분리 할 수 ​​있지만 별도의 테이블로 분류 할 수 있습니다. 사용자가 설정 역할이 있으면

<authentication-provider> 
    <password-encoder hash="md5"/> 
    <jdbc-user-service data-source-ref="dataSource" 
     users-by-username-query="select email, password, '1' from user where email=?" 
     authorities-by-username-query="select email, role, '1' from user where email=?" /> 
</authentication-provider> 

, 당신은 당신의 컨트롤러의 역할을 확인할 수 있습니다, 또는 JSP 파일에합니다 (http://www.springframework.org/security/tags 태그 라이브러리를 사용하여). 다음은 이러한 JSP의 예입니다.

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<%@ taglib prefix="security" uri="http://www.springframework.org/security/tags" %> 

<h2>Edit Comment</h2> 
<br/> 

<security:authorize ifNotGranted="ROLE_ADMIN"> 
You are not authorized to edit comments. 
</security:authorize> 
<security:authorize ifAnyGranted="ROLE_ADMIN"> 
    <!-- Display the whole admin edit comment page --> 
</security:authorize> 
관련 문제