Hier verwenden wir die Frühlingssicherheit und das native Jasig Cas-Paket zur Integration. Warum wird Frühlingssicherheit-Cas von Feder nicht direkt verwendet? Es wird später erklärt.
Konfiguration
web.xml
<Filter> <filter-name> casfilterchain </filter-name> <filterklasse> org.springframework.web.filter.delegatingFilterProxy </Filter-Class> </filter> <Filter-Mapping> <Filter-Name> Casfilterchain </Filter-Name> <URL-Muster>/*</url-puftern> </filter-mapping> <hörer> <hörerklasse> org.jasig.cas.client.session.singlesignouthttpSessionListener </Listener-Klasse> </Listener>
ApplicationContext-Security.xml
<? xmlns: Security = "http://www.springframework.org/schema/security" xmlns: util = "http://www.spingframework.org/schema/util" xsi: Schemalocation = "http://wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww., http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd "> <bean id =" Casfilterchine "> <constructor-util> <utile: list> <Secessary: filterchain muster ="/** ","/** ". filters="singleSignOutFilter, cas20ProxyReceiveTicketValidationFilter, authenticationFilter, httpServletRequestWrapperFilter, assertionThreadLocalFilter"/> </util:list> </constructor-arg> </bean> <bean id="singleSignOutFilter"/> <bean id="cas20ProxyReceiveTicketValidationFilter" > <property name="serverName" value="${client.url}"/> <property name="ticketValidator" ref="cas20ServiceTicketValidator"/> </bean> <bean id="cas20ServiceTicketValidator"> <constructor-arg value = "$ {cas.url}"/> <Eigenschaft name = "renew" value = "false"/> </bean> <bean id = "AuthenticationFilter"> <Eigenschaft name = "renew" value = "false"/> <Eigenschaft name = "casserverloginurl" value = "$ {{{url}"/> <Stief name = "subical </bean> <bean id = "httpServletRequestWrapperFilter"/> <bean id = "AsSertionThreadLocalFilter"/> </beans> Eigenschaften
#Cas Serviceadresse cas.url = https: //cas.example.com: 8443#CAS -Client -Adresse ist die Adresse dieses Anwendungsclients.url = http: // localhost: 8080
analysieren
In der Sicherheitsfilterkette in ApplicationContext-Security.xml verwenden wir 5 Filter, nämlich: SingleSignoutFilter, Cas20ProxyreceiveticketValidationFilter, Authentifizierungfilter, httpServletRequestWrapperFilter und AssertionTheadlocalFilter.
Warum nicht Frühlingssicherheit-Cas verwenden?
Frühlingssicherheit-Cas
Der verantwortliche Ticket-Validator-Filter in Frühjahrssicherheit-Cas ist die org.springframework.security.cas.authentication.casAuthenticationProvider.
Private CasAuthenticationToken AuthenticateNow (endgültige Authentifizierungsauthentifizierung) löst die Authentifizierung aus. ...
Beim Erstellen des zweiten Parameters der Validator -Methode des Validators
private String GetServiceUrl (Authentifizierungsauthentifizierung) {String serviceurl; if (authentication.getDetails () instanceof serviceAuthenticationDetails) {serviceUrl = ((ServiceAuthenticationDetails) Authentifizierung.getDetails ()). GetServiceUrl (); } else if (serviceProperties == null) {neue illegaleStateException werfen ("serviceProperties kann nicht null sein, es sei denn, die Authentifizierung.getDetails () implementiert serviceAuthenticationDetails."); } else if (serviceProperties.getService () == null) {neue illegaleStateException werfen ("serviceProperties.getService () kann nicht null sein, es sei denn, die Authentifizierung.getDetails () implementiert serviceAuthenticationDetails."); } else {serviceurl = serviceProperties.getService (); } if (logger.isdebugenabled ()) {logger.debug ("serviceurl ="+serviceurl); } return ServiceUrl;}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.