- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试实现我自己的 ContainerRequestFilter
并配置 SecurityContext
.它在 jax-rs 资源上运行良好,但 EJB jax-rs 抛出 javax.ejb.AccessLocalException
我发现的唯一相关的东西是 4 岁,解决方法似乎不太好。
https://java.net/projects/jersey/lists/users/archive/2010-05/message/265
我的自定义 SecurityContext:
@Provider
@PreMatching
public class SecurityFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext filterContext) throws IOException {
filterContext.setSecurityContext(new Authorizer());
}
public class Authorizer implements SecurityContext {
public Principal getUserPrincipal() {
return null;
}
public boolean isUserInRole(String role) {
return true;
}
public boolean isSecure() {
return false;
}
public String getAuthenticationScheme() {
return null;
}
}
@Path("test")
@Stateless
public class TestSecureResource {
@GET
@RolesAllowed("admin")
@Path("admin")
public Response secureTest() {
return Response.status(200).entity("admin").build();
}
}
最佳答案
您可以使用 JAX-RS SecurityContext
作为 API 而不是 SPI。应用程序开发人员提供 SecurityContext
的情况并不常见。执行。如果您这样做,您必须知道它只有“本地 JAX-RS 有效性”,因为它是 JAX-RS 特定的 API。 Servlet/Web 容器和 EJB 容器都不能使用它。他们不必这样做,因为 Java SE 和 EE 具有更通用的安全支持。
如果您希望您的安全检查在 Java EE 应用程序中起作用(即 HttpServletRequest.isUserInRole(...)
、EJBContext.isCallerInRole(...)
或 javax.annotation.security
EJB 上的注释),您需要使用 Java EE 功能保护您的 Servlet 层。这意味着使用例如 <security-constraint>
在 web.xml
.您可以使用 *
如 <role-name>
意思是“所有经过身份验证”的用户都可以调用 REST API:
<security-constraint>
<web-resource-collection>
<url-pattern>/rest/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>adminRole</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<url-pattern>/rest/orders/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name> <!-- all authenticated users -->
</auth-constraint>
</security-constraint>
javax.annotation.security
JAX-RS 中的注释使用名为
RolesAllowedDynamicFeature 的 Jersey 特定功能.
@ApplicationPath("/rest")
public class MyApplication extends ResourceConfig {
public MyApplication() {
super(AdminResource.class);
register(RolesAllowedDynamicFeature.class);
}
}
@Path("/admin")
@RolesAllowed("adminRole")
public class AdminResource {
@GET
public String get() { return "GET"; }
...
}
SecurityContext
你自己。如果您处理安全的 EJB,则不得实现它。最后,您需要将 JAX-RS 层保护为通用 Web/Servlet 应用程序。我确信您已经保护了您的 Web/HTML 页面。
关于jakarta-ee - EJB jax-rs 资源上的 Jersey 自定义 SecurityContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26518941/
端点 Jersey . 我想用 ContainerRequestFilter 保护端点 @Provider @Secured public class AuthorizationRequestFilt
我看过很多关于这个的帖子,但我不明白我做错了什么。 服务.yml: parameters: services: bar.menu_builder: class: Foo\Bar
我对 Spring Integration 中的 SecurityContext 传播有一些困惑。 以下是文档的要点: http://docs.spring.io/spring-integration
我创建了一个自定义的 AuthenticationProvider,因此我必须返回一个包含用户的用户名和密码的 Authentication 实现(例如 UsernamePasswordAuthent
我正在尝试为 403(拒绝访问)和 500(内部服务器错误)等错误编写自定义错误页面。它们将从 Velocity 模板呈现,并使用用户的语言环境翻译所有消息。身份验证和语言环境解析在应用程序中运行良好
在我的 spring 应用程序中,我希望 SecurityContext 始终包含一个 Authentication。如果它不是常规的 UsernamePasswordAuthenticationTo
官方 Angular Security Guide谈到 4 个安全上下文:HTML、Url、Style 和 Resource Url。 每个人负责清理相应类型的资源。 此外,DomSanitizer
我在我的项目中使用 Spring Security。 我有更改登录的功能。为了实现这个目标,我使用以下代码 Authentication authentication = ... SecurityCo
我有一个 Quarkus 应用程序,我在其中实现了 ContainerRequestFilter 接口(interface)来保存来自传入请求的 header : @PreMatching publi
@Scheduled 注释方法是否在任何 SecurityContext 之外?当我尝试使用以下内容时,它始终将 securitycontext/auth 设为 null。如果这不可能,那么运行用户特
我正在使用 Spring Security 设置开发 Spring MVC 应用程序,该应用程序通过 LDAP 对 Active Directory 用户进行身份验证。我正在尝试设置 AOP 以记录调
我正在使用 securityContext 进行测试,但是当我将 runAsNonRoot 设置为 true 时我无法启动 pod。我使用 vagrant 以用户 abdelghani 的身份将一个
当我尝试在 symfony 演示中访问应用程序/示例时,出现以下错误 Error: The Symfony\Component\Security\Core\SecurityContext class
在我的k8s部署的securityContext.runAsUser部分中选择要运行的用户与在Dockerfile中使用USER myuser指定用户之间有什么区别? 我特别感兴趣是否存在与USER
我正在创建泽西网络服务。 Jersey 文档的一部分: Security information of a request is available by injecting a JAX-RS Sec
我正在为我的 Dropwizard + Liquibase + Angular 应用程序编写集成测试来测试 REST 服务。我的应用程序使用 cookie 进行基本身份验证。 所以我创建了 Class
我正在研究 Spring Security 的不同类实现。我知道我们将 Authentication 对象设置为 SecurityContext ThreadLocal 对象: UsernamePas
我是 Spring Boot 和 Spring Security 的新手,继承了一个使用它们的 webapp 项目。我们将把 webapp 迁移到新的部署环境。我们将要改变的事情之一是身份验证机制,以
我要问的问题有点棘手,我还没有找到任何答案。也许是因为我在寻找错误的东西。但我希望你能在这方面帮助我。 我用了following tutorial实现使用 token 而不是基本用户/密码身份验证的自
我想检查集群中的 Pod 是否作为特权 Pod 运行,这可能表明我们可能存在安全问题,因此我检查是否特权:true 但是根据securityContext:规范还有其他字段,例如 allowPrivi
我是一名优秀的程序员,十分优秀!