هنا نستخدم الربيع الأمنية وحزمة JASIG CAS الأصلية للتكامل. لماذا يتم توفير الربيع-الأمن CAS بواسطة الربيع غير مستخدم مباشرة؟ سيتم شرحه لاحقًا.
إعدادات
web.xml
<Ivilter> <ilter-name> casfilterchain </filter-name> <ilter-class> org.springframework.web.filter.delegatingfilterproxy </filter-class> </filter> <filter mapping> <Url-pattern>/*</url-pattern> </filter-mapping> <stanker> <stelerer-class> org.jasig.cas.client.session.singlesignouthtttessessionlistener </stanker-class> </stanker>
ApplicationContext-security.xml
<؟ Xmlns: Security = "http://www.springframework.org/schema/security" http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/Util مرشحات = "singlesignoutfilter ، cas20proxyeiveticketvalidationFilter ، antainticationfilter ، httpservletrequestwrapperfilter ، assertionThreadlocalter"/> </util: list> </constructor-arg> </ id = "cas20proxyreeceiveticketValidationFilter"> <property name = "serverName" value = "$ {client.url}"/> <property name = "ticketvalidator" ref = "cas20servicetvalidator"/> </bean id = "cas20servicetvalid value = "$ {cas.url}"/> <property name = "reneft" value = "false"/> </bean> <bean id = "antainticationfilter"> <property name = "reneft value =" false "/> <property name =" casserverloginurl "value =" $ {cas.url} "/> <bean id = "httpservletrequestwrapperfilter"/> <bean id = "AssertionTherThreadlocalfilter"/> </bans> ملكيات
#cas عنوان الخدمة cas.url = https: //cas.example.com: 8443#عنوان العميل هو عنوان هذا التطبيق client.url = http: // localhost: 8080
تحليل
في سلسلة مرشحات الأمان في ApplicationContext-security.xml ، نستخدم 5 مرشحات ، وهي: singlesignoutfilter ، cas20proxyeiveticketvalidationfilter ، antainticationfilter ، httpservletrequestwrapperfilter ، و AssertionThrowlocalfilter.
لماذا لا تستخدم الربيع-CAS CAS
الربيع-الأمن CAS
مرشح مدقق التذاكر المسؤول في الربيع-CAS هو org.springframework.security.cas.authentication.casauthenticationprovider.
casauthenticationtoken anuledicatenow (مصادقة المصادقة النهائية) يلقي المصادقة {try {final asshertion assertion = this.ticketvalidator.validate (antaintication.getCredentials (). ...عند إنشاء المعلمة الثانية لطريقة التحقق من المدقق
سلسلة خاصة getServiceUrl (مصادقة المصادقة) {String ServiceUrl ؛ if (antaintication.getDetails () مثيل serviceauthenticationDetails) {serviceUrl = ((ServiceAuthenticationDetails) المصادقة. } آخر إذا (serviceProperties == NULL) {رمي جديد alficalStateException ("لا يمكن أن يكون ServiceProperties فارغًا ما لم يكن المصادقة. } if if (serviceProperties.getService () == null) {رمي new alualalstateException ("serviceProperties.getService () لا ، ما لم يكن المصادقة. } آخر {serviceUrl = serviceProperties.getService () ؛ } if (logger.isdebugenabled ()) {logger.debug ("serviceurl ="+serviceUrl) ؛ } return serviceurl ؛}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.