当前位置: 首页 > 面试题库 >

Jersey 2.x安全性上下文不起作用?

有耀
2023-03-14
问题内容

当我尝试创建Java jersey应用程序身份验证角色时,对我来说不起作用。

Java代码

package org.student.resource;
import javax.annotation.security.PermitAll;
import javax.annotation.security.RolesAllowed;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.ext.Provider;

@Path("/resource")
@PermitAll 
public class Resource {
@GET
public String get(){
    return "GET";
}

@RolesAllowed("admin")
@POST
public String post(){
    return "Post content.";
}

}

部署描述符:-

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<display-name>JerseyAuthentication</display-name>
<servlet>
    <servlet-name>Application</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Application</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
<security-constraint>
    <web-resource-collection>
        <web-resource-name>Resource</web-resource-name>
        <url-pattern>/resource/*</url-pattern>
        <http-method>GET</http-method>
    </web-resource-collection>
</security-constraint>
<welcome-file-list>
    <welcome-file>login.html</welcome-file>
</welcome-file-list>
 </web-app>

标头:-

Cache-Control →private
Content-Language →en
Content-Length →1010
Content-Type →text/html;charset=utf-8
Date →Sat, 19 Sep 2015 08:14:18 GMT
Expires →Thu, 01 Jan 1970 05:30:00 IST
Server →Apache-Coyote/1.1

请给我一些帮助。我想知道为资源分配角色。


问题答案:

所以你需要做三件事

第一..

在Tomcat中设置安全领域(我假设是的服务器Server →Apache-Coyote/1.1)。您可以在Realm Configuration
HOW-TO上
阅读有关创建领域的更多信息。

最容易配置的领域是UserDatabaseRealm,但绝不建议在生产环境中使用。只是为了让您起步并在开发中运行。您所需要做的就是转到中的tomcat- users.xml文件${TOMCAT_HOME}/conf。然后只需编辑文件,它应该看起来像

<tomcat-users>
  <user username="Murugesan" password="secret" roles="admin" />
  <user username="peeskillet"  password="superSecret" roles="user"  />
</tomcat-users>

第二..

您仍然需要对web.xml进行一些配置。你需要做几件事

  1. 声明允许使用该应用程序的角色。您可以将其放在下面</security-contraint>

    <security-role>
    <role-name>user</role-name>
    



 类似资料:
  • securityconfig.java

  • SELinux 管理过程中,进程是否可以正确地访问文件资源,取决于它们的安全上下文。进程和文件都有自己的安全上下文,SELinux 会为进程和文件添加安全信息标签,比如 SELinux 用户、角色、类型、类别等,当运行 SELinux 后,所有这些信息都将作为访问控制的依据。 首先,通过一个实例看看如何查看文件和目录的安全上下文,执行命令如下: [root@localhost ~]# ls -Z

  • Oracle GSSAPI Java示例和各种SPNEGO/GSSAPI IETF RFC表明,GSS启动器(客户端)和接收器(服务器)都应该有一个循环来建立安全上下文,并且客户端可能需要在建立安全上下文之前使用GSS令牌进行多次传递。 > Oracle GSSAPI示例:https://docs.oracle.com/javase/8/docs/technotes/guides/security

  • 问题内容: 自最新版本以来,我经历了Chrome的某些意外行为:在Firefox中,此代码可以正常运行: 它在Chrome中不起作用(只需下载一个名为“下载”的文件),但是以前效果很好。我必须更改一下它又能正常工作吗? 问题答案: 经过研究,我终于找到了您的问题。 下载属性: 如果存在HTTP标头Content-Disposition:,并且提供的文件名与此属性不同,则HTTP标头的优先级高于此属

  • 我使用的elasticsearch版本是ES2.2。我为全文搜索键入与官方教程相同的代码。(https://www.elastic.co/guide/en/elasticsearch/guide/current/match-query.html) 看来全文对我不起作用。我的设定有什么问题?谢谢! 我键入的代码如下: 返回的结果是: 当我输入精确的查询时,我只能得到一次命中,该查询存储在索引中。 输

  • 我有一个Firestore集合,结构如下: 但是,当我试图保护集合以只允许上面的快照(而不是对集合中其他文档的请求)时,我的权限是不正确的。这是我尝试过的: 我也试过: 它似乎有效,但不允许我访问文档的子集合。我需要rules方法才能工作。 在我列出答案之前,我会给一些时间,以防更有经验的人有更好的解决方案。