سؤال

لدي 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>

هل هذه هي الطريقة الصحيحة للقيام بذلك؟

هل كانت مفيدة؟

المحلول

ما لم أكن أسيء فهم سؤالك ، ما تطلبه هو نمط الاستخدام العادي - CasAuthenticationProvider تم تكوينه مع أ UserDetailsService الذي يحمل الأدوار من قاعدة بيانات محلية بدلاً من CAS.

إذا ألقيت نظرة على تكوين تطبيق عينة CAS, ، يمكنك ببساطة استبدال userService Bean مع تطبيقك الخاص الذي قام بتحميل معلومات المستخدم من قاعدة البيانات الخاصة بالتطبيق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top