我想重新写我的旧的应用程序的企业,“经营”的方式。
因此,我有一个带登录模块的Swing客户端和从头创建的自己的服务器。客户端使用SSL证书来加密到服务器的TCP连接(我检查服务器上的客户端证书和客户端上的服务器证书),然后服务器使用数据库来验证和授权用户。
现在我试图让它与由WildFly 8 CR1托管的ejb一起工作。 我想使用相同的客户端 - 服务器密钥对将Swing客户端连接到WildFly服务器,然后使用存储在MySQL数据源中的名称和凭证对用户进行身份验证。我也有存储在数据库中的角色,我想用它们来配置客户端主体。
我有简单的,基本的EJB调用:
Context ctx = new InitialContext();
MyBeanRemote bean = (MyBeanRemote)ctx.lookup("AppName/module-0.0.1-SNAPSHOT/MyBean!my.app.MyBeanRemote");
ResultType result = bean.doSomething();
我jndi.properties文件
java.naming.factory.initial=org.jboss.naming.remote.client.InitialContextFactory
java.naming.provider.url=http-remoting://myServer:8080
jboss.naming.client.ejb.context=true
java.naming.security.principal=app-user-name
[email protected]
我有基本的数据源配置
<datasource jta="false" jndi-name="java:jboss/datasources/MyDB" pool-name="MyDB" enabled="true" use-ccm="false">
<connection-url>jdbc:mysql://localhost:3306/Mydb</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver>mysql-connector-java-5.1.28-bin.jar</driver>
<security>
<user-name>mysqlUser</user-name>
<password>mysqlPass</password>
</security>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
</validation>
<statement>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>
上述的一切正常。
我读过一些导游,但还没有找到一个介绍如何使用的复合材料:通过SSL EJB(而不是web)+ WildFly 8(不JBoss的7)+加密+通过与数据源进行身份验证和授权登录客户端模块
任何帮助将不胜感激。
对不起,我的英语,我经常使用这种语言的阅读,不写:)
感谢您的回答。据我所知,CR1版本的WildFly根本不使用4447端口。我想使用新版本的ejb查找,但它根本无法工作。 – Kaskader
是的,你是对的 - 我的坏 - 我忘了新的HTTP升级机制。现在是8080 - 我固定了这个帖子。我的意思是,你没有使用新的远程堆栈 - 因此指向了JBoss 7文章的链接。远程工作的最小属性集为:remote.connections = default remote.connection.default.host = localhost remote.connection.default.port = 8080。我还添加了一个快速启动从蜻蜓ejb-remoting的链接。它不适用于CR 1,但应该工作(在更新pom版本到 8.0.0.CR1 后适用于我) –
mcmil
不幸的是,它不起作用。我已按照您的建议指定了安全领域和域。在域:远程处理我有'<子系统xmlns =“urn:jboss:域:远程处理:2.0”> '。您的版本在启动时导致服务器崩溃。然后按照你的建议填充jboss-ejb3.xml和jboss-ejb-client.properties,只留下'java.naming.factory.url.pkgs = org.jboss.ejb.client.naming'和'java.naming。 factory.initial = org.jboss.naming.remote.client.InitialContextFactory'。现在,我在上下文初始化方面有例外 –
Kaskader