问题标签 [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.

0 投票
2 回答
207 浏览

java - 独立 Java 程序中的注释基础配置

我意识到我非常喜欢 Java EE 中的注释基础配置(@Resource)功能。然后我注意到注解实际上是 Java SE 的一部分。

所以我想知道我是否可以将它与 Java SE 一起使用。我当然可以在独立程序中使用注释,但我找到了如何实际配置它。我发现的所有示例都涉及创建 Java EE 配置文件。谁能给我一个确认(或给我一个参考)它可以在 Java EE 环境之外使用吗?以及如何做到这一点?

0 投票
3 回答
50825 浏览

java - 使用 JAX-RS (Jersey) 和 @RolesAllowed 自定义 HTTP 状态响应

通过我非常简单的 JAX-RS 服务,我使用带有 JDBC 领域的 Tomcat 进行身份验证,因此我正在使用 JSR 250 注释。

问题是我想在 HTTP 状态响应中返回一个自定义消息体。状态码 (403) 应该保持不变。例如,我的服务如下所示:

如果具有不同于“ADMIN”角色的用户访问该服务,我想将响应消息更改为类似的内容(取决于媒体类型 [xml/json]):

目前泽西返回以下正文:

如何更改默认消息正文?有没有办法处理(可能抛出)异常来构建我自己的 HTTP 状态响应?

0 投票
1 回答
717 浏览

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 方法添加。

有什么问题?

0 投票
3 回答
10461 浏览

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住在哪一个?

0 投票
1 回答
2891 浏览

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 或过滤器的对象实施诸如授权之类的横切关注点?

0 投票
1 回答
2032 浏览

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,但它们似乎也没有效果。

0 投票
1 回答
1232 浏览

spring - 带有 HTTP Basic 和 JSR-250 的 Spring Security JavaConfig:403 Forbidden

@RolesAllowed使用Annotation时配置应该是什么样子?我的网页不需要任何身份验证,因为没有登录或其他任何内容。只有管​​理面板应该有一个 http 基本身份验证。

这是我当前的代码:

但是在使用正确的凭据登录后,我只是得到一个 HTTP 403。

请求管理面板时记录:

权限:

0 投票
1 回答
2836 浏览

web-services - 如何将 Apache CXF 网络服务部署到 Glassfish

我有一个使用 Apache CXF 生成和构建的 Web 服务客户端。接下来我有 JAX-RS Jersey 应用程序,我想在其中调用该 Web 服务的方法。当我尝试将这个简单的项目部署到 Glassfish 4.0 服务器时,我得到了这个异常:

命令部署失败。

我在这个项目中唯一的一个 CXF 依赖项是:

是否有任何其他与 JSR 250 兼容的 CXF 库?谢谢

0 投票
2 回答
867 浏览

java - 如何使用 SecureAnnotationsInterceptor (Apache CXF) 保护多个端点?

我正在使用 Apache CXF,我想使用注释SecureAnnotationsInterceptor来保护我的端点。@RolesAllowed

据我了解,我必须通过将引用传递给setSecuredObject方法来告诉拦截器要保护哪个对象。

不幸的是,代码不是为处理 bean 列表而设计的。

然后我想知道如何使用这个拦截器保护多个端点。

我是否必须创建自己的拦截器版本或创建它的多个实例(每个端点一个以确保安全)或其他?

0 投票
1 回答
2120 浏览

java - JSR 250 方法级安全性在 Spring MVC 中不起作用

我尝试从@Configuration基于安全性转移到 JSR 250 方法级安全性。下面的代码工作如下:

对我的页面的访问是在configure(HttpSecurity http)里面配置的SecurityConfiguration.class。每个人都可以访问“全部”页面,如果有人尝试“受保护”,则显示默认登录页面,如果角色错误,则显示“访问被拒绝”消息。美好的。

现在,我想做完全相同的事情,但使用 JSR 250 Annotations。所以:

我已删除configure(HttpSecurity http)方法,添加到调度程序 servlet 上下文配置

显然在控制器内部@PermitAll@RolesAllowed

这些更改无法正常工作。如果我尝试访问被询问有关凭据的任何页面(默认登录页面),如果我填写它们,那么我可以以任何角色访问任何页面:(

我是不是忘记了什么?

提前感谢您提供的任何帮助,Marek

应用环境:

网络应用上下文:

控制器:

依赖项: