我正在为java(gozirra,stompj,activemq)尝试几个stomp库.所有这些库都有很差的文档,例如只有一个例子,我有一个严重的问题:
我需要SSL支持.
stomp + ssl协议存在并由activemq支持,但我无法找到支持它的Java客户端.
我刚刚发现apache commons配置可以从DataSource读取属性,但它不会缓存它们.我的应用程序需要多次读取属性,每次访问数据库的速度都很慢.
我有一个camel应用程序,它将所有消息发送到以我的自定义bean结尾的路由.这个bean是用范围原型创建的(我相信OOP ...),他们将需要读取一些属性和一个数据源(从属性url/name/etc读取),这些属性取决于来自sql db的当前用户.我收到的每条消息都会创建一个bean,因此重新读取属性.不幸的是,我不能自由选择从哪里读取属性,因为现在还有另一个不是由我编写的软件(GUI),它是写入db的用户/属性管理器.所以我需要从中读取属性.
你能建议我另类吗?
谢谢,马里奥
我和骆驼一起使用shiro.我可以使用activedirectory(ldap)对用户进行身份验证,但我无法将角色中的用户组映射到用户权限.骆驼需要绝对的权限才能工作.
这是我的config.ini:
[main]
authcStrategy = org.apache.shiro.authc.pam.FirstSuccessfulStrategy
securityManager.authenticator.authenticationStrategy = $authcStrategy
activeDirectoryRealm = org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm
activeDirectoryRealm.systemUsername=cn=padl,cn=Users,dc=comune,dc=prato,dc=local
activeDirectoryRealm.systemPassword=xxxxxxxxxxxxxxxxxxxxxxx
activeDirectoryRealm.url = ldap://172.16.1.98:389
activeDirectoryRealm.groupRolesMap = "CN=menu_ufficiomobile_ania,OU=Menu,OU=Gruppi,OU=ComuneDiPrato,DC=comune,DC=prato,DC=local":"menu_ufficiomobile_ania"
securityManager.realms = $activeDirectoryRealm
[users]
test = test,menu_ufficiomobile_passicarrabili, menu_ufficiomobile_rubati,menu_ufficiomobile_ordinanze, menu_ufficiomobile_ztl, menu_ufficiomobile_cciaa, menu_ufficiomobile_ania, menu_ufficiomobile_anagrafe, menu_ufficiomobile_mctc, menu_ufficiomobile_pra
[roles]
menu_ufficiomobile_anagrafe = prato:anagrafe
menu_ufficiomobile_mctc = prato:mctc
menu_ufficiomobile_pra = prato:pra
menu_ufficiomobile_ania = prato:ania
menu_ufficiomobile_cciaa = prato:cacomm
menu_ufficiomobile_ztl = prato:ztl
menu_ufficiomobile_ordinanze = prato:ordinanze
menu_ufficiomobile_rubati = prato:rubati
menu_ufficiomobile_passicarrabili = prato:permessi
Run Code Online (Sandbox Code Playgroud)
我的安全注入代码:
ShiroSecurityToken shiroSecurityToken = new ShiroSecurityToken(qr.getUserName(),qr.getPassword());
ShiroSecurityTokenInjector shiroSecurityTokenInjector = new ShiroSecurityTokenInjector(shiroSecurityToken, passPhrase);
arg0.getIn().setHeader("SHIRO_SECURITY_TOKEN", shiroSecurityTokenInjector.encrypt());
Run Code Online (Sandbox Code Playgroud)
以及使用权限的路由代码:
from("seda:interrogaANIA").threads(1)
.setHeader("db", constant(Database.ANIA)).policy(aniaS) …Run Code Online (Sandbox Code Playgroud)