Remove the line. Thats just setting the Log4J NDC by an internal utility. Am 16.04.2013 um 09:53 schrieb Carlos Lorenzo <[email protected]>:
> Thank's Rober for your detailed "how to". > I have doubts with this line: > > LogUtils.setNdcLogIdentifier(credentials); > > > Where you get this method??. > > > Thank's for all. > > > > 2013/4/11 Robert Oschwald <[email protected]> > Here are the rough steps how I created a WsAuthenticationHandler for CAS > 3.4.xx using SpringWS 1.5.4 and JaxB marshalling. > Use the recommended Maven Overlay project setup as stated in the CAS CASUM > Wiki manual. > > > 1. Implement a WsAuthenticationHandler which extends > AbstractUsernamePasswordAuthenticationHandler and uses an injected > WebserviceClient for authentication: > public class WebserviceAuthenticationHandler extends > AbstractWebserviceAuthenticationHandler implements InitializingBean { > protected final boolean authenticateUsernamePasswordInternal( > UsernamePasswordCredentials credentials) throws > AuthenticationException { > return this._webserviceClient.doAuthentication(credentials); > } > public final void setWebserviceClient(final WebserviceClient > webserviceClient) { > this._webserviceClient = webserviceClient; > } > } > > 2. Create WebserviceClient interface: > public interface WebserviceClient { > public boolean doAuthentication(final UsernamePasswordCredentials > credentials) throws AuthenticationException; > } > > 3. Create a webserviceClient impl > e.g.: > public class YourWsClient implements WebserviceClient { > public boolean doAuthentication(UsernamePasswordCredentials > credentials) throws AuthenticationException { > LogUtils.setNdcLogIdentifier(credentials); > MyRequest request = ObjectFactory.createMyRequest(); > request.setUsername(credentials.getUsername); > request.setPassword(credentials.getPassword); > try { > response = (AuthenticateUserResponse) > getWebServiceTemplate().marshalSendAndReceive(request); > return (response.isLoggedIn()); // just an example. > } catch (Exception e){ > throw > AuthenticationException("error.authentication.credentials.bad"); > } > } > } > > 4. Define the wsClient bean with its marshaller and unmarshaller (I use a > separate wsConfigContext.xml file for this) > <?xml version="1.0" encoding="UTF-8"?> > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> > <bean id="yourWsClient" class="xxx.cas.adaptors.ws.YourWsClient"> > <property name="marshaller" ref="marshaller"/> > <property name="unmarshaller" ref="marshaller"/> > <property name="defaultUri" > value="https://<ws-server>/<ws-endpoint-address>"/> > </bean> > <!-- (Un-)Marshaller --> > <bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> > <property name="contextPath" > value="<your_package_name_of_xjc_generated_schema_classes>"/> > </bean> > </beans> > > > 5. Wire in the WebserviceAuthenticationHandler into deployerConfigContext.xml > authenticationManager: > ... > <bean id="authenticationManager" > class="org.jasig.cas.authentication.AuthenticationManagerImpl"> > <property name="authenticationHandlers"> > <list> > <!-- > | This is the authentication handler > that authenticates services by means of callback via SSL, thereby validating > | a server side SSL certificate. > +--> > <bean > class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" > p:httpClient-ref="httpClient" /> > > <!-- Your Webservice Authentication Handler --> > <bean id="wsAuthHandler" > class="xxx.handler.WebserviceAuthenticationHandler"> > <property name="webserviceClient" > ref="yourWsClient"/> > </bean> > </list> > </property> > </bean> > … > > 6. add the wsConfigContext.xml to web.xml: > <context-param> > <param-name>contextConfigLocation</param-name> > <param-value> > /WEB-INF/spring-configuration/*.xml > /WEB-INF/deployerConfigContext.xml > /WEB-INF/wsConfigContext.xml > </param-value> > </context-param> > > > You can add the jaxb2 maven plugin to the pom.xml to generate the schema > classes automatically. > See http://mojo.codehaus.org/jaxb2-maven-plugin/usage.html > > > Robert > > Am 11.04.2013 um 10:37 schrieb Carlos Lorenzo <[email protected]>: > >> Thank you for your quick response, Robert. >> Could you elaborate a little more your solution??. >> As I said in the previous mail I am fairly new with JASIG Cas Server. >> >> >> Thanks. >> >> >> >> -- >> You are currently subscribed to [email protected] as: >> [email protected] >> >> To unsubscribe, change settings or access archives, see >> http://www.ja-sig.org/wiki/display/JSG/cas-user > > -- > You are currently subscribed to [email protected] as: > [email protected] > To unsubscribe, change settings or access archives, see > http://www.ja-sig.org/wiki/display/JSG/cas-user > > -- > You are currently subscribed to [email protected] as: > [email protected] > To unsubscribe, change settings or access archives, see > http://www.ja-sig.org/wiki/display/JSG/cas-user -- You are currently subscribed to [email protected] as: [email protected] To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/cas-user
