У меня CAS 3 Spring 3.2 и Spring Security 3.2 работает на tomcat 7 с базой данных MySQL.Имя пользователя из CAS и Роли из другой базы данных
Мы используем базу данных MySQL с CAS для аутентификации пользователей, то мы передаем атрибуты после успешной, мы получаем те детали из базы данных называется сказать «SSO»
<bean id="attributeRepository" class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">
<constructor-arg index="0" ref="dataSource"/>
<constructor-arg index="1" value="select * from user where {0}" />
<property name="queryAttributeMapping">
<map>
<entry key="username" value="user_name" />
</map>
</property>
<property name="resultAttributeMapping">
<map>
<entry key="user_name" value="username" />
<entry key="full_name" value="fullname" />
</map>
</property>
</bean>
после того что мы хотим сделать, это получить имя пользователя из этих атрибутов, затем перейдите в базу данных приложения, называемую «приложение».
Итак, что мы хотим сделать, это получить имя пользователя из CAS после успешной аутентификации, а затем получить его роли из базы данных.
Как мы можем это сделать правильно?
UPDATE
Хорошо, теперь, что я пытался до сих пор, и я действительно не знаю, что действительным или нет.
Я реализовал UserDetailsService
и я создал UserEntityDetails
, который проходит мой UserEntity
и Реализует UserDetails
, Тогда я использовал мой UserDetailsService
, чтобы загрузить мой собственный созданный класс.
Тогда в моем XML Я сделал это
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="casAuthProvider" user-service-ref="DBUserServiceDetails" />
</security:authentication-manager>
Является ли это правильный способ сделать это?
Хорошо, тогда почему здесь пароль? не должен ли пароль быть в CAS? – engma
Это просто потому, что это синтаксис пространства имен 'user-service', которое используется для простоты здесь. 'CasAuthentictaionProvider' не должен заботиться о свойстве пароля загруженного объекта UserDetails. Возможно, вы захотите прочитать [эту часть руководства] (http://docs.spring.io/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#cas-sequence). Шаг 14 - это загрузка роли. –
ok попробует и даст вам обратную связь с результатами. – engma