لدي CAS 3 Spring 3.2 و Spring Security 3.2 تشغيل على Tomcat 7 مع قاعدة بيانات MySQL.
نستخدم قاعدة بيانات MySQL مع CAS لمصادقة المستخدمين ، ثم نمرر سمات بعد النجاح ، نحصل على هذه التفاصيل من قاعدة بيانات تسمى Say "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 بعد المصادقة الناجحة ، ثم الحصول على أدواره من قاعدة البيانات.
كيف يمكننا أن نفعل ذلك بشكل صحيح؟
تحديث
حسنًا الآن ما جربته حتى الآن ولا أعرف حقًا أنه صالح أم لا.
لقد نفذت UserDetailsService
وقمت بإنشاء أ UserEntityDetails
الذي يمتد بلدي UserEntity
وتنفذ UserDetails
, ، ثم استخدمت بلدي UserDetailsService
لتحميل الفصل الدراسي المخصص الخاص بي.
ثم في جهاز XML الخاص بي ، صنعت هذا
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider ref="casAuthProvider" user-service-ref="DBUserServiceDetails" />
</security:authentication-manager>
هل هذه هي الطريقة الصحيحة للقيام بذلك؟