[JBossWS] - https jboss ws client
by jopersson
Hi,
Trying to use https endpoint address in client proxy (Jboss-4.2.3.GA) from java swing client with endorsed liraries and WS-Security UsernameToken enabled.
Solution goes thru a Portwise security server like:
swingclient->https->portwise->http->jboss-in-dmz.
Code from Swing client:
| System.setProperty("javax.net.ssl.keyStore", "C:/k.jks");
| System.setProperty("javax.net.ssl.trustStore", "C:/Program/Java/jdk1.6.0_06/jre/lib/security/cacerts");
| System.setProperty("javax.net.ssl.keyStorePassword", "123456");
| System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
| System.setProperty("javax.net.ssl.keyStoreType", "jks");
| System.setProperty("javax.net.ssl.trustStoreType", "jks");
| System.setProperty("org.jboss.security.ignoreHttpsHost","true");
|
| String wsdlURLFileName = Resources.getProperty("wsdlURL");
| URL wsdlURL = Resources.findFileAsURL(wsdlURLFileName);
| String namespaceURI = Resources.getProperty("namespaceURI");
| String localpart = Resources.getProperty("localpart");
| service = new KService(wsdlURL, new QName(namespaceURI, localpart));
|
| port = service.getKPort();
| ((StubExt)port).setConfigName("Standard WSSecurity Client");
|
| Map<String, Object> reqContext = ((BindingProvider) port).getRequestContext();
|
| reqContext.put(StubExt.PROPERTY_AUTH_TYPE, StubExt.PROPERTY_AUTH_TYPE_WSSE);
|
| String kEnpointAddress = "https://portwise.k.se/KService";
| ((BindingProvider) port).getRequestContext().put(
| BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
| kEnpointAddress);
|
When invoking web service methods the call does not bring a valid certificate. Portwise says 'not a valid certificate' and the call does not reach to jboss in dmz.
Did some debugging on Jboss Remoting code and can see truststore and keystore being loaded correctly. Monitoring TLS protocol from client to portwise server seems ok with handshake.
Also trying to access Jboss in DMZ with plain Java code:
| try {
| System.setProperty("javax.net.ssl.keyStore", "C:/k.jks");
| System.setProperty("javax.net.ssl.trustStore", "C:/Program/Java/jdk1.6.0_06/jre/lib/security/cacerts");
| System.setProperty("javax.net.ssl.keyStorePassword", "123456");
| System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
| System.setProperty("javax.net.ssl.keyStoreType", "jks");
| System.setProperty("javax.net.ssl.trustStoreType", "jks");
|
| String keyStorePath = "C:/k.jks";
| String trustStorePath = "C:/Program/Java/jdk1.6.0_06/jre/lib/security/cacerts";
| String password = "123456";
|
| String host = "https://portwise.k.se/KService?wsdl";
| KeyStore ks = KeyStore.getInstance("JKS");
| FileInputStream keyStoreInput = new FileInputStream(keyStorePath);
| try {
| ks.load(keyStoreInput, password.toCharArray());
| } finally { keyStoreInput.close(); }
|
| KeyStore ts = KeyStore.getInstance("JKS");
| FileInputStream trustStoreInput = new FileInputStream(trustStorePath);
| try {
| ts.load(trustStoreInput, "changeit".toCharArray());
| } finally { trustStoreInput.close(); }
|
| TrustManagerFactory trustManagerFactory =
| TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
| KeyManagerFactory keyManagerFactory =
| KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
| trustManagerFactory.init(ts);
| keyManagerFactory.init(ks,password.toCharArray());
|
| SSLContext sslContext = SSLContext.getInstance("TLS");
| sslContext.init(keyManagerFactory.getKeyManagers(),
| trustManagerFactory.getTrustManagers(), null);
| SSLContext.setDefault(sslContext);
|
| HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
| HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier(){
| public boolean verify(String arg0, SSLSession arg1) {
| return true;
| }
| });
| javax.net.ssl.HttpsURLConnection connection =
| (javax.net.ssl.HttpsURLConnection)url.openConnection();
| connection.setDoOutput(true);
| connection.setDoInput(true);
| connection.connect();
|
| BufferedReader in = new BufferedReader(new InputStreamReader(
| connection.getInputStream()));
| int c;
| while ((c = in.read()) != -1) {
| System.out.write(c);
| }
| in.close();
| } catch (Exception ex) {
| ex.printStackTrace();
| return false;
| }
|
This code retrieve wsdl OK from jboss in DMZ thru Portwise.
Any ideas ?
tia
johan
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4185021#4185021
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4185021
17 years, 6 months
[Remoting] - Re: NPE from one way message dispatch
by ron.sigal@jboss.com
Hi Andrew,
Ok, I've added to HTTPClientInvoker a variable, "unmarshalNullStream", which controls the behavior when there is a null InputStream (or ErrorStream). If "unmarshalNullStream" is set to "true" (the default value), HTTPClientInvoker will call UnMarshaller.read() in the case of a null InputStream. If it is set to false, then HTTPClientInvoker will skip the call to UnMarshaller.read().
Also, I've attached an updated jboss-remoting.jar to JBREM-1046.
Please let me know if the latest changes solve your problem.
By the way, I've made these changes in Remoting version 2.5 only. Is there a chance that JBossWebServices would encounter the same problem in AS 4.2 (which uses Remoting version 2.2.x)?
-Ron
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4184989#4184989
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4184989
17 years, 6 months
[JBoss Cache: Core Edition] - Jboss-cache ConfigureException: configure(): can't invoke e
by Meena Rajani
Hi
I am new to jboss cahe, could you please help me in sorting out this error.
I am using netbeans to compile my program running it on remote linux server.
NetBeans 6.0.1
JDK jdk1.5.0_12
JRE jre1.6.0_07
JBossCache-1.4.0.SP1
POstgreSQL 8.3
postgresql-8.2-506.jdbc3 driver
Running Windows XP
1- While compilin Jboss-Cache I am getting following error , though it is building successfuly
Created dir: C:\Documents and Settings\Meena\Desktop\db project\jboss-cache\build\classes
Compiling 258 source files to C:\Documents and Settings\Meena\Desktop\db project\jboss-cache\build\classes
C:\Documents and Settings\Meena\Desktop\db project\jboss-cache\src\org\jboss\cache\aop\TreeCacheAopDelegate.java:127: warning: non-varargs call of varargs method with inexact argument type for last parameter;
cast to java.lang.Class for a varargs call
cast to java.lang.Class[] for a non-varargs call and to suppress this warning
Constructor ctr = clazz.getDeclaredConstructor(null);
C:\Documents and Settings\Meena\Desktop\db project\jboss-cache\src\org\jboss\cache\aop\TreeCacheAopDelegate.java:129: warning: non-varargs call of varargs method with inexact argument type for last parameter;
cast to java.lang.Object for a varargs call
cast to java.lang.Object[] for a non-varargs call and to suppress this warning
obj = ctr.newInstance(null);
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
2 warnings
While Running the compiled code it on Server
I am getting following error
It seems it canot not initialize cache, complaining about configuration file. I tried the same code few months ago it was working fine.
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.cache.PropertyConfigurator.configure(PropertyConfigurator.java:215)
at org.jboss.cache.PropertyConfigurator.configure(PropertyConfigurator.java:161)
at org.usyd.sit.perfEvalServer.ServerImpl.initCache(ServerImpl.java:60)
at org.usyd.sit.perfEvalServer.ServerImpl.(ServerImpl.java:45)
at org.usyd.sit.perfEvalServer.ServerImpl.main(ServerImpl.java:150)
Caused by: java.lang.IllegalArgumentException: setCacheMode(): caching mode -1 is invalid
at org.jboss.cache.TreeCache.setCacheMode(TreeCache.java:928)
at org.jboss.cache.TreeCache.setCacheMode(TreeCache.java:909)
... 9 more
org.jboss.cache.ConfigureException: configure(): can't invoke setCacheMode to configure TreeCache properties. Exception: java.lang.reflect.InvocationTargetException
at org.jboss.cache.PropertyConfigurator.configure(PropertyConfigurator.java:220)
at org.jboss.cache.PropertyConfigurator.configure(PropertyConfigurator.java:161)
at org.usyd.sit.perfEvalServer.ServerImpl.initCache(ServerImpl.java:60)
at org.usyd.sit.perfEvalServer.ServerImpl.(ServerImpl.java:45)
at org.usyd.sit.perfEvalServer.ServerImpl.main(ServerImpl.java:150)
Following is my xml file
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===================================================================== -->
<!-- -->
<!-- Sample TreeCache Service Configuration -->
<!-- -->
<!-- ===================================================================== -->
<!-- ==================================================================== -->
<!-- Defines TreeCache configuration -->
<!-- ==================================================================== -->
jboss:service=Naming
jboss:service=TransactionManager
<!--
Configure the TransactionManager
-->
org.jboss.cache.DummyTransactionManagerLookup
<!--
Isolation level : SERIALIZABLE
REPEATABLE_READ (default)
READ_COMMITTED
READ_UNCOMMITTED
NONE
-->
REPEATABLE_READ
<!--
Valid modes are LOCAL
REPL_ASYNC
REPL_SYNC
INVALIDATION_ASYNC
INVALIDATION_SYNC
FRESHNESS_ASYNC
FRESHNESS_GROUP_ASYNC
INVALIDATION_FINEGRAIN
-->
FRESHNESS_ASYNC
<!--
Freshness limit, in ms
-->
1000
<!--
Just used for async repl: use a replication queue
-->
false
<!--
Replication interval for replication queue (in ms)
-->
0
<!--
Max number of elements which trigger replication
-->
0
<!-- Name of cluster. Needs to be the same for all clusters, in order
to find each other
-->
TreeCache-Cluster
<!-- JGroups protocol stack properties. Can also be a URL,
e.g. file:/home/bela/default.xml
-->
<!-- UDP: if you have a multihomed machine,
set the bind_addr attribute to the appropriate NIC IP address -->
<!-- UDP: On Windows machines, because of the media sense feature
being broken with multicast (even after disabling media sense)
set the loopback attribute to true -->
<UDP mcast_addr="228.1.2.3" mcast_port="48866" bind_addr="129.78.97.10"
ip_ttl="64" ip_mcast="true"
mcast_send_buf_size="150000" mcast_recv_buf_size="80000"
ucast_send_buf_size="150000" ucast_recv_buf_size="80000"
loopback="false"/>
<PING timeout="2000" num_initial_members="3"
up_thread="false" down_thread="false"/>
<MERGE2 min_interval="10000" max_interval="20000"/>
<!-- <FD shun="true" up_thread="true" down_thread="true" />-->
<FD_SOCK/>
<VERIFY_SUSPECT timeout="1500"
up_thread="false" down_thread="false"/>
<pbcast.NAKACK gc_lag="50" retransmit_timeout="600,1200,2400,4800"
max_xmit_size="8192" up_thread="false" down_thread="false"/>
<UNICAST timeout="600,1200,2400" window_size="100" min_threshold="10"
down_thread="false"/>
<pbcast.STABLE desired_avg_gossip="20000"
up_thread="false" down_thread="false"/>
<FRAG frag_size="8192"
down_thread="false" up_thread="false"/>
<pbcast.GMS join_timeout="5000" join_retry_timeout="2000"
shun="true" print_local_addr="true"/>
<pbcast.STATE_TRANSFER up_thread="true" down_thread="true"/>
<!--
Whether or not to fetch state on joining a cluster
NOTE this used to be called FetchStateOnStartup and has been renamed to be more descriptive.
-->
true
<!--
The max amount of time (in milliseconds) we wait until the
initial state (ie. the contents of the cache) are retrieved from
existing members in a clustered environment
-->
20000
<!--
Number of milliseconds to wait until all responses for a
synchronous call have been received.
-->
20000
<!--OPTIMISTIC-->
<!-- Max number of milliseconds to wait for a lock acquisition -->
15000
<!-- Name of the eviction policy class. -->
<!--
Indicate whether to use region based marshalling or not. Set this to true if you are running under a scoped
class loader, e.g., inside an application server. Default is "false".
-->
false
Thanks
Meena
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4184988#4184988
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4184988
17 years, 6 months