I build a new Java Web Service and works fine.
So now i decide to active authentication for that web service.
As a simply way i set in the security-constraint my web service URL and set the
login-config / auth-method to BASIC.
My client set properties username and pwd and all works fine also.
But i have a little problem, my real web archive (war) use FORM as auth-method
and it's not possible to have two different auth method in the same WAR!!!
If i use FORM auth method, my client cannot connect and some exception occurs.
The exception it's strange because don't say "unauthenticated.. " but:
Exception in thread "main" AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client
faultSubcode:
faultString: Missing whitespace before SYSTEM literal URI.
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace: org.xml.sax.SAXParseException:
Missing whitespace before SYSTEM literal
URI.
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3370)
at org.apache.crimson.parser.Parser2.whitespace(Parser2.java:736)
at org.apache.crimson.parser.Parser2.maybeExternalID(Parser2.java:2922)
at org.apache.crimson.parser.Parser2.maybeDoctypeDecl(Parser2.java:1309)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:656)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at
org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:258)
at org.apache.axis.MessagePart.getAsSOAPEnvelope(MessagePart.java:657)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:430)
at org.apache.axis.client.Call.invokeEngine(Call.java:3052)
at org.apache.axis.client.Call.invoke(Call.java:3014)
at org.apache.axis.client.Call.invoke(Call.java:2608)
at org.apache.axis.client.Call.invoke(Call.java:2513)
at org.apache.axis.client.Call.invokeInternal(Call.java:1973)
at org.apache.axis.client.Call.invoke(Call.java:1914)
at
com.dat.abs.web.ws.Client.useOfDynamicInvocationInterfaceClient(Client.java:101)
at com.dat.abs.web.ws.Client.main(Client.java:34)
org.apache.axis.AxisFault: Missing whitespace before SYSTEM literal URI.
at org.apache.axis.AxisFault.makeFault(AxisFault.java:146)
at org.apache.axis.MessagePart.getAsSOAPEnvelope(MessagePart.java:664)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:430)
at org.apache.axis.client.Call.invokeEngine(Call.java:3052)
at org.apache.axis.client.Call.invoke(Call.java:3014)
at org.apache.axis.client.Call.invoke(Call.java:2608)
at org.apache.axis.client.Call.invoke(Call.java:2513)
at org.apache.axis.client.Call.invokeInternal(Call.java:1973)
at org.apache.axis.client.Call.invoke(Call.java:1914)
at
com.dat.abs.web.ws.Client.useOfDynamicInvocationInterfaceClient(Client.java:101)
at com.dat.abs.web.ws.Client.main(Client.java:34)
Caused by: org.xml.sax.SAXParseException: Missing whitespace before SYSTEM
literal URI.
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3370)
at org.apache.crimson.parser.Parser2.whitespace(Parser2.java:736)
at org.apache.crimson.parser.Parser2.maybeExternalID(Parser2.java:2922)
at org.apache.crimson.parser.Parser2.maybeDoctypeDecl(Parser2.java:1309)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:656)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at
org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:258)
at org.apache.axis.MessagePart.getAsSOAPEnvelope(MessagePart.java:657)
... 9 more
So.. how can i use FORM authentication for a web service?
Or i must deploy web services in another WAR module?
or configure some other parameters?
This is my webservice.xml:
<webservices xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd" version="1.1">
<webservice-description>
<webservice-description-name>HelloService</webservice-description-name>
<wsdl-file>WEB-INF/wsdl/HelloService.wsdl</wsdl-file>
<jaxrpc-mapping-file>WEB-INF/mapping.xml</jaxrpc-mapping-file>
<port-component>
<port-component-name>ABSActionJSEEndpointsInterface</port-component-name>
<wsdl-port>ABSActionJSEEndpointsInterfacePort</wsdl-port>
<service-endpoint-interface>com.dat.abs.web.ws.ABSActionJSEEndpointsInterface</service-endpoint-interface>
<service-impl-bean>
<servlet-link>ABSActionJSEEndpoints</servlet-link>
</service-impl-bean>
</port-component>
</webservice-description>
_____________________
mapping.xml
<?xml version="1.0" encoding="UTF-8"?>
<java-wsdl-mapping xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd">
<package-mapping>
<package-type>com.dat.abs.web.ws</package-type>
http://ws.web.abs.dat.com/types
</package-mapping>
<package-mapping>
<package-type>com.dat.abs.web.ws</package-type>
http://ws.web.abs.dat.com/
</package-mapping>
<service-interface-mapping>
<service-interface>com.dat.abs.web.ws.HelloService</service-interface>
<wsdl-service-name
xmlns:serviceNS="http://ws.web.abs.dat.com/">serviceNS:HelloService</wsdl-service-name>
<port-mapping>
<port-name>ABSActionJSEEndpointsInterfacePort</port-name>
<java-port-name>ABSActionJSEEndpointsInterfacePort</java-port-name>
</port-mapping>
</service-interface-mapping>
<service-endpoint-interface-mapping>
<service-endpoint-interface>com.dat.abs.web.ws.ABSActionJSEEndpointsInterface</service-endpoint-interface>
<wsdl-port-type
xmlns:portTypeNS="http://ws.web.abs.dat.com/">portTypeNS:ABSActionJSEEndpointsInterface</wsdl-port-type>
<wsdl-binding
xmlns:bindingNS="http://ws.web.abs.dat.com/">bindingNS:ABSActionJSEEndpointsInterfaceBinding</wsdl-binding>
<service-endpoint-method-mapping>
<java-method-name>existsBusinessPartner</java-method-name>
<wsdl-operation>existsBusinessPartner</wsdl-operation>
<method-param-parts-mapping>
<param-position>0</param-position>
<param-type>java.lang.String</param-type>
<wsdl-message-mapping>
<wsdl-message
xmlns:wsdlMsgNS="http://ws.web.abs.dat.com/">wsdlMsgNS:ABSActionJSEEndpointsInterface_existsBusinessPartner</wsdl-message>
<wsdl-message-part-name>String_1</wsdl-message-part-name>
<parameter-mode>IN</parameter-mode>
</wsdl-message-mapping>
</method-param-parts-mapping>
<wsdl-return-value-mapping>
<method-return-value>boolean</method-return-value>
<wsdl-message
xmlns:wsdlMsgNS="http://ws.web.abs.dat.com/">wsdlMsgNS:ABSActionJSEEndpointsInterface_existsBusinessPartnerResponse</wsdl-message>
<wsdl-message-part-name>result</wsdl-message-part-name>
</wsdl-return-value-mapping>
</service-endpoint-method-mapping>
<service-endpoint-method-mapping>
<java-method-name>getBusinessPartner</java-method-name>
<wsdl-operation>getBusinessPartner</wsdl-operation>
<method-param-parts-mapping>
<param-position>0</param-position>
<param-type>java.lang.String</param-type>
<wsdl-message-mapping>
<wsdl-message
xmlns:wsdlMsgNS="http://ws.web.abs.dat.com/">wsdlMsgNS:ABSActionJSEEndpointsInterface_getBusinessPartner</wsdl-message>
<wsdl-message-part-name>String_1</wsdl-message-part-name>
<parameter-mode>IN</parameter-mode>
</wsdl-message-mapping>
</method-param-parts-mapping>
<wsdl-return-value-mapping>
<method-return-value>java.lang.String</method-return-value>
<wsdl-message
xmlns:wsdlMsgNS="http://ws.web.abs.dat.com/">wsdlMsgNS:ABSActionJSEEndpointsInterface_getBusinessPartnerResponse</wsdl-message>
<wsdl-message-part-name>result</wsdl-message-part-name>
</wsdl-return-value-mapping>
</service-endpoint-method-mapping>
</service-endpoint-interface-mapping>
</java-wsdl-mapping>
__________________________________________________
my wsdl.
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="HelloService" targetNamespace="http://ws.web.abs.dat.com/"
xmlns:tns="http://ws.web.abs.dat.com/" xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
<soap:operation soapAction=""/>
<soap:body use="literal" namespace="http://ws.web.abs.dat.com/"/>
<soap:body use="literal" namespace="http://ws.web.abs.dat.com/"/>
<soap:operation soapAction=""/>
<soap:body use="literal" namespace="http://ws.web.abs.dat.com/"/>
<soap:body use="literal" namespace="http://ws.web.abs.dat.com/"/>
<soap:address location="REPLACE_WITH_ACTUAL_URL"/>
Thank You!
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3912896#3912896
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3912896
-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems? Stop! Download the new AJAX search engine that makes
searching your log files as easy as surfing the web. DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user