当前位置: 首页 > 知识库问答 >
问题:

ActiveMQ Artemis ActiveMQSecurityManager4验证ClientId/订阅

孟海
2023-03-14

目前Artemis拥有ActiveMQSecurityManager4。当使用以下方法时,它提供了大量的控制:

/**
* Determine whether the given user is valid and whether they have
* the correct role for the given destination address.
*
* This method is called instead of
* {@link ActiveMQSecurityManager#validateUserAndRole(String, String, Set, CheckType)}.
*
* @param user       the user
* @param password   the user's password
* @param roles      the user's roles
* @param checkType  which permission to validate
* @param address    the address for which to perform authorization
* @param remotingConnection the user's connection
* @param securityDomain the name of the JAAS security domain to use (can be null)
* @return the name of the validated user or null if the user isn't validated
*/
String validateUserAndRole(String user,
                          String password,
                          Set<Role> roles,
                          CheckType checkType,
                          String address,
                          RemotingConnection remotingConnection,
                          String securityDomain);
/**
* The ActiveMQ Artemis SecurityStore implementation
*/
public class SecurityStoreImpl implements SecurityStore, HierarchicalRepositoryChangeListener {

...

@Override
public void check(final SimpleString address,
                  final SimpleString queue,  //exactly what I was looking for
                  final CheckType checkType,
                  final SecurityAuth session) throws Exception {
...

共有1个答案

宋劲
2023-03-14

我想你想做的已经通过Artemis-592解决了。只需将地址和队列名与broker.xml中相关的安全设置中的.字符连接起来。一定要把应该隔离的用户放在不同的组里。

明确地说,您不需要实现安全管理器或插件或类似的任何东西。只要进行配置,您就可以处理所需的一切。

 类似资料:
  • 我正在开发一个应用程序,它提取其他应用程序的Swagger规范并为它们推断一个UI,具有与API交互所需的所有功能。 现在,我在尝试实现OAuth2身份验证时遇到了一个问题。使用OAuth2,您始终需要注册的cientId才能获得访问令牌。问题在于,swagger规范不需要在OAuth2安全定义中提供clientId。 这意味着clientId应该在用户想要访问的任何OAuth2服务器中为我自己的

  • 想象一下MVP模式中的情况,演示者订阅了一个返回观察者的服务: 现在,类从视图中调用方法,比如: 现在,在我的单元测试中,我想验证在非错误情况下调用方法时,是否调用了视图的方法。 问题是: 有没有干净的方法可以做到这一点? 背景: 我使用mockito来验证交互,当然还有更多 Dagger正在注入整个演示者,除了 我试过什么: 注入订阅服务器并在测试中模拟它。看起来有点脏,因为如果我想改变演示者与

  • 我正在尝试为消息设置MS Graph网络钩子订阅,但Graph似乎正在发送一个空白的validationToken。我正在连接到https://graph.microsoft.com/beta/subscriptions 我的APIendpoint在Postman中工作,并成功返回仅包含validationToken的明文响应,但是当我调用MS Graph时,我收到以下错误“订阅验证请求失败。响应

  • 接口说明 验证验证码 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 GET /authcenter/api/verify/v1.0.0/check

  • 我得到例外: 签名异常java.security.signatureException:签名长度不正确:得到294,但预期为256 因此,我成功地生成了bu在: 参考:谷歌播放订单ID更新为新格式 DefaultSignatureValidator.class: 有什么想法如何验证它吗?

  • 我正在寻找一种完全从代码创建发布/订阅主题的方法。我设法用域验证api验证域,但我找不到向项目注册域的api。这里描述的唯一方法https://cloud.google.com/pubsub/advanced#register与控制台的交互使用。