问题标签 [jsr250]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 独立 Java 程序中的注释基础配置
我意识到我非常喜欢 Java EE 中的注释基础配置(@Resource)功能。然后我注意到注解实际上是 Java SE 的一部分。
所以我想知道我是否可以将它与 Java SE 一起使用。我当然可以在独立程序中使用注释,但我找到了如何实际配置它。我发现的所有示例都涉及创建 Java EE 配置文件。谁能给我一个确认(或给我一个参考)它可以在 Java EE 环境之外使用吗?以及如何做到这一点?
java - 使用 JAX-RS (Jersey) 和 @RolesAllowed 自定义 HTTP 状态响应
通过我非常简单的 JAX-RS 服务,我使用带有 JDBC 领域的 Tomcat 进行身份验证,因此我正在使用 JSR 250 注释。
问题是我想在 HTTP 状态响应中返回一个自定义消息体。状态码 (403) 应该保持不变。例如,我的服务如下所示:
如果具有不同于“ADMIN”角色的用户访问该服务,我想将响应消息更改为类似的内容(取决于媒体类型 [xml/json]):
目前泽西返回以下正文:
如何更改默认消息正文?有没有办法处理(可能抛出)异常来构建我自己的 HTTP 状态响应?
spring - 通过注释的 Spring 授权不适用于自定义身份验证
我已经覆盖了 BasicAuthenticationFilter 并将其替换为我们的过滤器以从 db 获取自定义身份验证对象并通过设置它
这是安全配置的重要部分:
我还提供了我自己的 AuthenticationProvider ,它只是一个无操作,因为身份验证过程已经在自定义过滤器中完成:
现在,Spring 在启动时正确打印每个方法所需的角色,因此它可以正确检测注释。例如,删除方法的“管理员”角色:
2011-11-22 11:47:09,474 [main] 调试 org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource - 添加安全方法 [CacheKey[com.somecompany.SomeClass; public com.somecompany.ReturnType com.somecompany.SomeClass.delete()]] 与属性 [admin]
但是 Spring 不会以某种方式检查用户是否具有此角色。相反,它回退到安全上下文 xml 文件的 http 标记中定义的全局模式。因此,例如,如果我使用角色用户访问此删除方法:[“user”],它将接受它,因为 http 标签中的 hasRole('user') 。
初始化 DefaultFilterInvocationSecurityMetadataSource 对象时可能有问题,因为它不会填充删除方法的特定规则!?只有 http-tag 定义的规则通过 addSecureUrl 方法添加。
有什么问题?
java - 如何将 javax.annotation.Generated 添加到 Java SE 5?
我正在开发一个必须在 Java SE 5 和 Java SE 6 上运行的项目。我最近开始使用一个@Generated
向生成的代码添加注释的工具,我想保留这些注释。它看起来像是javax.annotation.Generated
在 Java 5 EE 和Java 6 SE 及更高版本中,但不在 Java 5 SE API 中。
当我将它发送给客户时,最好包含什么方法javax.annotation.Generated
,以便它可以在 Java SE 5 和 Java SE 6 上运行而没有任何问题?我只需要包含一个额外的 jarfile 吗?如果有,@Generated
住在哪一个?
jsf-2 - @RolesAllowed、@DenyAll 在 Web 层中的使用?
我正在查看 Java EE 6 规范部分 EE.6.25,它表明 Web 容器必须支持以下注释:@PermitAll、@DenyAll、@RolesAllowed、@DeclareRoles 和 @RunAs。
EE.6.25 Java™ 平台 1.1 要求的通用注释
Common Annotations 规范定义了被其他几个规范(包括本规范)使用的 Java 语言注释。使用这些注解的规范完全定义了这些注解的要求。小程序容器不需要支持任何这些注释。所有其他容器必须为所有这些注解提供定义,并且必须支持这些注解的语义,如相应规范中所述并总结在下表中。
表 EE.6-5 容器支持的常用注解
在规范中再往下一点,它说,“......现在需要 Web 容器支持 RolesAllowed、PermitAll 和 DenyAll 注释。Servlet 规范和 JAX-RS 规范包含详细信息。”
它没有提到 JSF 规范,所以我假设这些注释不能用于托管 bean。为什么不?
除了在 web.xml 中使用页面级声明性安全性之外,如何在 Web 层对非 servlet 或过滤器的对象实施诸如授权之类的横切关注点?
java - Spring Security + JSR 250 + EJB 3.1 不工作
我的 JEE6 webapp(主要是 CDI、EJB 3.1 和 JSF 2)使用 Spring Security 3,但不使用 Spring 依赖注入或 MVC。我实现了一个 Spring AuthenticationProvider 来处理登录。在登录期间,我根据一些自定义业务逻辑向我的用户添加角色。
现在,我想使用 JSR 250 注释来保护我的业务逻辑。我的业务逻辑是使用无状态 EJB(3.1 版)实现的。
我在 web.xml 中包含 Spring 的上下文 XML 文件,如下所示:
这是 XML 文件的内容:
在我的类中,我使用类注解(类型级别)来表示所有方法都应该只能由具有特定角色的用户访问:
但是,只有角色 ROLE_USER 的用户也可以访问此类的任何功能。我在使用以下代码进行调试时验证了用户没有错误的角色:
正如预期的那样,权限集合不包含 ROLE_GROUP 权限。
似乎我的注释被完全忽略了,但是为什么呢?我也尝试过 Spring 的 pre-post annotations,但它们似乎也没有效果。
spring - 带有 HTTP Basic 和 JSR-250 的 Spring Security JavaConfig:403 Forbidden
@RolesAllowed
使用Annotation时配置应该是什么样子?我的网页不需要任何身份验证,因为没有登录或其他任何内容。只有管理面板应该有一个 http 基本身份验证。
这是我当前的代码:
但是在使用正确的凭据登录后,我只是得到一个 HTTP 403。
请求管理面板时记录:
权限:
web-services - 如何将 Apache CXF 网络服务部署到 Glassfish
我有一个使用 Apache CXF 生成和构建的 Web 服务客户端。接下来我有 JAX-RS Jersey 应用程序,我想在其中调用该 Web 服务的方法。当我尝试将这个简单的项目部署到 Glassfish 4.0 服务器时,我得到了这个异常:
命令部署失败。
我在这个项目中唯一的一个 CXF 依赖项是:
是否有任何其他与 JSR 250 兼容的 CXF 库?谢谢
java - 如何使用 SecureAnnotationsInterceptor (Apache CXF) 保护多个端点?
我正在使用 Apache CXF,我想使用注释SecureAnnotationsInterceptor
来保护我的端点。@RolesAllowed
据我了解,我必须通过将引用传递给setSecuredObject
方法来告诉拦截器要保护哪个对象。
不幸的是,代码不是为处理 bean 列表而设计的。
然后我想知道如何使用这个拦截器保护多个端点。
我是否必须创建自己的拦截器版本或创建它的多个实例(每个端点一个以确保安全)或其他?
java - JSR 250 方法级安全性在 Spring MVC 中不起作用
我尝试从@Configuration
基于安全性转移到 JSR 250 方法级安全性。下面的代码工作如下:
对我的页面的访问是在configure(HttpSecurity http)
里面配置的SecurityConfiguration.class
。每个人都可以访问“全部”页面,如果有人尝试“受保护”,则显示默认登录页面,如果角色错误,则显示“访问被拒绝”消息。美好的。
现在,我想做完全相同的事情,但使用 JSR 250 Annotations。所以:
我已删除configure(HttpSecurity http)
方法,添加到调度程序 servlet 上下文配置
显然在控制器内部@PermitAll
。@RolesAllowed
这些更改无法正常工作。如果我尝试访问被询问有关凭据的任何页面(默认登录页面),如果我填写它们,那么我可以以任何角色访问任何页面:(
我是不是忘记了什么?
提前感谢您提供的任何帮助,Marek
应用环境:
网络应用上下文:
控制器:
依赖项: