2

no-xml을 통해 spring-mvc 기반 Java 응용 프로그램을 구현했습니다. 각 컨트롤러 방법에 대해 rol 기반 인증을 설정하는 방법은 무엇입니까? 나는 다음과 같은 코드 정적 역할 이름 facultyMember 싶지 않아스프링 MVC/보안 비 정적 역할 기반 인증

:이 권한은 서비스에 액세스 할 수 있다는 이상한 것 같지만

@PreAuthorize("hasRole('facultyMember')") 
public Newsletter getFacultyNews() { } 
+0

어떻게하면 승인하지 않으시겠습니까? –

+0

런타임시 권한 부여를 변경하고 싶습니다. 예를 들면 : x 사람이 컨트롤러 메소드를 승인 한 후이 메소드가 승인되지 않은 것으로 변경됩니다. –

+0

역할은 권한 이상의 것입니다 (이름이 오도 된 수 있음). 역할은 기본적으로 권한 모음입니다. 응용 프로그램의 일부에 액세스하기 위해 필요한 권한을 변경하려는 이유는 무엇입니까? 그것은 꽤 정적이어야합니다. –

답변

0

당신이 시도하고 외부 속성을 사용할 수 있습니다, 동적 될 것입니다 파일 : 응용 프로그램의 맥락에서

: 컨트롤러 클래스의 다음

<bean id="myProp" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
    <property name="locations"> 
     <list> 
       <value>file:///pathToExternalPropertyFile/myProp.properties</value> 
      </list> 
    </property> 
</bean> 

:

,
@Value("#{myProp['dynamicRole']}") 
private String dynamicRole; 

@PreAuthorize("hasRole('"+dynamicRole +"')") 
public Newsletter getFacultyNews() { } 
+0

문제는 우리가 변경하기로 결정할 때 - 예를 들어 교수 보조자가 교수진 뉴스 레터를 읽을 수 있도록해야한다는 것입니다. 코드를 변경해야합니다. '@PreAuthorize ("hasRole ('facultyMember ') 또는 hasRole ('teachingAssistant ') ") public 뉴스 레터 getFacultyNews() {...}'새 릴리스로 인해 발생했습니다. 나는 이것을 원하지 않는다. –

+0

외부 파일로 제어 할 수있는 편집 된 답변 확인 –

+0

정말 고마워요. 맞아. –