0
X.509スマートカード経由でアプリケーションに認証しようとしています。今のところ、私のアプリケーションにはユーザが定義されていないので、私は匿名認証を使用しようとしています。ユーザーを作成すると、それをhasRole()に切り替えます。X.509証明書と匿名ユーザーでSpringセキュリティを設定できません
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider user-service-ref="myUserService" />
</security:authentication-manager>
<!-- TODO: Enable this once I am ready to start annotating the service interfaces -->
<security:global-method-security pre-post-annotations="enabled" />
<security:http use-expressions="true" authentication-manager-ref="authenticationManager" access-denied-page="/index2.xhtml" >
<security:anonymous enabled="true" />
<security:x509 subject-principal-regex="CN=(.*?)," user-service-ref="myUserService" />
<security:intercept-url pattern="/**" access="isAnonymous()" requires-channel="https" />
<!-- TODO: configure invalid-session-url, delete sessionid -->
<security:session-management>
<security:concurrency-control max-sessions="2" error-if-maximum-exceeded="true"/>
</security:session-management>
</security:http>
<bean id="roleVoter"
class="org.springframework.security.access.vote.RoleHierarchyVoter">
<constructor-arg ref="roleHierarchy" />
</bean>
<bean id="roleHierarchy"
class="org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl">
<property name="hierarchy">
<value>
ROLE_USER > ROLE_AUTHENTICATED
ROLE_AUTHENTICATED > ROLE_UNAUTHENTICATED
ROLE_UNAUTHENTICATED > ROLE_ANONYMOUS
</value>
</property>
</bean>
私はisAnonymous()の使用を避けていたと思った無限ループの問題に巻き込まれているようです。
私はたぶん間違いをしているので、もし誰かが愚かさを指摘できれば、私は感謝しています。
ただ推測します:requires-channel = "https"をrequires-channel = "any"に変更してみてください。 – Ritesh