[jboss-user] [JBossWS] - WS-Security on POJO Endpoint
dhanushgopinath
do-not-reply at jboss.com
Thu Feb 12 00:49:49 EST 2009
Hi,
I am trying to implement WS-Security on a POJO Endpoint using JBOSS WS. I want to use the UserName token authentication. This is already a Jira Issue with 3.0.5 (https://jira.jboss.org/jira/browse/JBWS-1999) and since I saw the Jira Issue as resolved, I got the latest code from the site and built the Web Service stack and tried to implement it. I am implementing based on this
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=131719&postdays=0&postorder=asc&start=0
But while deploying the Web Service the endpoint configuration is shown as Standard Endpoint in the logs . Shouldn't it be Standard WSSecurity Endpoint. Given below is the excerpt from log.
| ServerEndpointMetaData:
| type=JAXWS
| qname={http://www.test.com/WF/Framework/AWFUtilityService}AWFUtilityServicePortTypePort
| id=jboss.ws:context=TestUtility,endpoint=AWFUtilityService
| address=http://127.0.0.1:8180/TestUtility/AWFUtilityService
| binding=http://schemas.xmlsoap.org/wsdl/soap/http
| linkName=AWFUtilityService
| implName=com.test.wf.framework.awfutilityservice.AWFUtilityServiceImpl
| seiName=com.test.wf.framework.awfutilityservice.AWFUtilityServicePortType
| serviceMode=null
| portComponentName=null
| contextRoot=/TestUtility
| urlPattern=/AWFUtilityService
| configFile=META-INF/standard-jaxws-endpoint-config.xml
| configName=Standard Endpoint
| authMethod=null
| transportGuarantee=null
| secureWSDLAccess=false
| properties={}
|
Now I run the client and the SOAP Message is properly built using the wsse:security headers, but at the server side its throwing a class cast exception
2009-02-11 20:12:52,153 DEBUG [org.jboss.ws.core.soap.MessageFactoryImpl] createMessage: [contentType=text/xml; charset=UTF-8]
| 2009-02-11 20:12:52,247 DEBUG [org.jboss.ws.metadata.umdm.EndpointMetaData] Configure SOAPBinding
| 2009-02-11 20:12:52,247 ERROR [org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS] SOAP request exception
| java.lang.ClassCastException: org.jboss.ws.core.soap.EnvelopeBuilderDOM
| at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:278)
| at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:193)
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:455)
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:295)
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:205)
| at org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:131)
| at org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:85)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
|
Here is my Web Service and the server side config files.
| @WebService(name="AWFUtilityServicePortType", serviceName = "AWFUtilityService", targetNamespace = "http://www.test.com/WF/Framework/AWFUtilityService",
| endpointInterface = "com.test.wf.framework.awfutilityservice.AWFUtilityServicePortType"
| )
| @EndpointConfig(configFile="META-INF/standard-jaxws-endpoint-config.xml", configName = "Standard WSSecurity Endpoint")
|
| public class AWFUtilityServiceImpl implements AWFUtilityServicePortType {
|
| public String getCorrelationID(String CorrelationID)
| throws GetCorrelationIDFault
| {
| String strCorrValue = Calendar.getInstance().getTime().toString();
| return CorrelationID + "_" + strCorrValue;
| }
|
| }
|
Server config file jboss-wsse-server.xml
<?xml version="1.0" encoding="UTF-8"?>
|
| <jboss-ws-security xmlns="http://www.jboss.com/ws-security/config"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
| xsi:schemaLocation="http://www.jboss.com/ws-security/config
| http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">
|
| <config>
| <authorize>
| <unchecked />
| </authorize>
| </config>
|
| <port name="AWFUtilityServicePort">
| <operation
| name="{http://www.test.com/WF/Framework/AWFUtilityService}getCorrelationID">
| <config>
| <authorize>
| <unchecked />
| </authorize>
| </config>
| </operation>
| </port>
| </jboss-ws-security>
|
jboss-web.xml
<?xml version="1.0" encoding="UTF-8"?>
| <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 2.4//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd">
|
|
| <jboss-web>
|
| <security-domain>java:/jaas/JBossWS</security-domain>
| <context-root>/TestUtility</context-root>
|
| </jboss-web>
|
Please help why this service is not getting deployed as a WS Security Endpoint. Do I need to enable it some where ? Or is it that the latest code doesn't contain the fix?
Thanks in Advance.
Dhanush
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4209342#4209342
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4209342
More information about the jboss-user
mailing list