我在课堂上有一个注释@SecurityDomain("cjm")
。根据我部署应用程序的环境,我需要配置不同的安全域。所以我的想法是使用过滤:@SecurityDomain("${project.name}")
。如何用maven属性替换Java注释值?
但是,使用我在SO上找到的例子,没有任何工作。我根本不能取代财产
这似乎很奇怪我还没有找到一个很好的解决方案。可能我正在用错误的术语进行搜索。或者,也许,很奇怪,它(仍然)是不可能的。
maven模板插件是不够的,它不包含过滤器,所以我有很多重复类编译错误。
该项目是一个Java EE项目,使用keycloak saml安全适配器在Red Hat EAP 7上运行。 @SecurityDomain必须将安全性上下文从Web上下文传播到ejb上下文。使用@RolesAllowed时这是必需的。我向keycloak团队记录了一个增强请求,以自动传播安全上下文,就像在默认场景中所做的那样。
您是否考虑过使用Spring配置?这里的文档: [Spring Externalized Configuration documentation](https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html) –
你似乎在说话关于“过滤”源代码听起来很奇怪的想法。你不介意把安全域放入属性文件吗?但是,有一个插件https://stackoverflow.com/questions/4106171/filtering-source-code-in-maven –
如何使用属性与@Value($ {securityDomain})私人字符串securityDomain并注入此值@SecurityDomain(securityDomain) –