스프링 보안에서는 DefaultJaasAuthenticationProvider를 사용하고 있습니다. linux 사용자 이름/비밀번호로 로그인 인증을 구성하십시오. JpamLoginModule은 인증에 사용됩니다. 나는 인증에 성공했지만 권한 (ROLE_USER, ROLE_ADMIN)에 문제가있어 HTTP 상태 403이 발생합니다 - 액세스가 거부되었습니다. 오류.스프링 보안 JAAS 인증 권한 문제
다음과 같은 구성이 나는 봄-security.xml에 사용
<security:authentication-manager>
<security:authentication-provider ref="jaasAuthProvider" />
</security:authentication-manager>
<bean id="jaasAuthProvider" class="org.springframework.security.authentication.jaas.DefaultJaasAuthenticationProvider">
<property name="configuration">
<bean class="org.springframework.security.authentication.jaas.memory.InMemoryConfiguration">
<constructor-arg>
<map>
<entry key="SPRINGSECURITY">
<array>
<bean class="javax.security.auth.login.AppConfigurationEntry">
<constructor-arg value="net.sf.jpam.jaas.JpamLoginModule" />
<constructor-arg>
<util:constant static-field="javax.security.auth.login.AppConfigurationEntry$LoginModuleControlFlag.REQUIRED" />
</constructor-arg>
<constructor-arg>
<map></map>
</constructor-arg>
</bean>
</array>
</entry>
</map>
</constructor-arg>
</bean>
</property>
<property name="authorityGranters">
<list>
<bean class="it.webapps.pam.RoleGranter" />
</list>
</property>
</bean>
<bean id="userDetailsService" class="it.webapps.pam.UserDetailsServiceImpl">
</bean>
RoleGranter.java 코드
public class RoleGranter implements AuthorityGranter {
public RoleGranter() {
System.out.print("=== Creating My Authority Granter ===");
}
@Override
public Set<String> grant(Principal principal) {
return Collections.singleton("ROLE_ADMIN");
}
}
제안 반환하는 매우 도움이
"HTTPS 상태 403 - 액세스가 거부되었습니다."Collections.Singleton ("ADMIN")을 반환합니다. spring-security-core-3.1.0.RC3 jar를 사용하고 있습니다. 다른 방법으로 디버깅 할 수 있습니까? – shakkir3435