当前位置: 首页 > 知识库问答 >
问题:

WebSphere Liberty配置文件-如何在部署Spring Boot uber JAR时添加安全约束

秦毅
2023-03-14

我很高兴看到WebSphere Liberty Profile在18.0.0.2版本中支持直接部署Spring Boot support JAR。

<application id="x" name="x"
             type="spring"
             location="${server.config.dir}/apps/spring-boot-uber.jar">
        <application-bnd>
            <security-role name="Authenticated">
                <special-subject type="ALL_AUTHENTICATED_USERS"/>
            </security-role>
            <security-role name="SUPER_USERS">
                <group name="My_Admins"/>
            </security-role>
        </application-bnd>
    </application>

注意安全角色绑定。

在web.xml(WAR)或ibm-ws-bnd.xml(EAR)中,我认为需要执行以下操作:

<?xml version="1.0" encoding="UTF-8"?>
<webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd"
                 version="1.0">
    <http-publishing>
        <webservice-security>

            <security-constraint>
                <web-resource-collection>
                    <web-resource-name>all</web-resource-name>
                    <url-pattern>/*</url-pattern>
                    <http-method>GET</http-method>
                    <http-method>PUT</http-method>
                    <http-method>HEAD</http-method>
                    <http-method>TRACE</http-method>
                    <http-method>POST</http-method>
                    <http-method>DELETE</http-method>
                    <http-method>OPTIONS</http-method>
                </web-resource-collection>
                <auth-constraint>
                    <role-name>Authenticated</role-name>
                </auth-constraint>
            </security-constraint>

            <security-role>
                <description>All authenticated users</description>
                <role-name>Authenticated</role-name>
            </security-role>
            <security-role>
                <description>Super users</description>
                <role-name>SUPER_USERS</role-name>
            </security-role>

        </webservice-security>
    </http-publishing>
</webservices-bnd>

以便在http请求(用户主体)中设置身份验证信息。

更新:

我甚至不确定WLP在部署Spring Boot uber JAR时是否支持application-bnd,但我根本不知道如何将角色绑定到它。

共有1个答案

归俊捷
2023-03-14

您可能需要考虑使用Spring Security https://Spring.io/guides/gs/securing-web/来提供Spring Boot应用程序中的用户详细信息和安全角色。到目前为止,liberty还不支持在application-bnd中定义授权角色的Spring Boot application JAR。

或者,您可以将JAR文件转换为WAR,并将web.xml文件放在src/main/webapp/WEB-INF文件夹中,并在server.xml中以“WAR”的形式提供应用程序类型

 类似资料:
  • 目前,我的所有属性都定义在文件中。但是,我希望在文件夹中有与不同配置文件相关的属性文件,并且我希望能够选择其中的任何一个。例如: null

  • 问题内容: 假设您有一个文件 并希望添加一些标头信息,例如 如何添加此“标题”?手动执行似乎很简单。点击几回车,复制/粘贴或写信息,就可以了。当然,在R中,我可以读入,创建,添加标题信息,然后。 我想知道是否还有另一种从“顶部”附加文件的方法。也欢迎使用其他解决方案(来自c ++或Java …)(我很好奇其他语言如何解决此问题)。 问题答案: 在R中,不需要使用额外的文件。您可以这样做: 但是,使

  • 问题内容: 我一直在开发一些Node应用程序,并且一直在寻找一种存储与部署相关的设置的良好模式。在Django世界(我来自哪里)中,通常的做法是创建一个包含标准设置(时区等)的文件,然后包含一个用于部署特定设置的文件。与哪个数据库进行通信,什么Memcache套接字,管理员的电子邮件地址等等。 我一直在寻找Node的类似模式。只需一个配置文件就可以了,因此它不必与中的其他所有文件一起使用,但是我发

  • 我启用了Swagger open API 3.0,如下所示: 添加了以下依赖项 之后添加了下面的bean进行定制。 一切正常。我可以访问swagger-用户界面和api文档。 但是我有几个使用keycloak OAuth 2.0保护的api。当我试图访问这些安全的api时,我收到了未经授权的错误(这是意料之中的)。我也想从swagger open api 3.0中测试安全的api。 有人能帮我在s

  • 我想用JAVA构建一个简单的soap客户机来调用soap JAVA web服务。所以我在我的项目中导入了WSDL,并构建了客户端。因此,如果我试图运行我的代码,我会遇到以下错误: AVVERTENZA:找不到所需的类(javax.activation.DataHandler和javax.mail.internet.MimeMultipart)。附件支持已禁用。AxisFault故障代码:{http

  • 我是配置部署环境的新手。这是正确的做法吗?有两个负载平衡器?我还需要为后端负载平衡器创建ssl吗?在AWS上正确部署应用程序的最佳方法是什么?我很感激你的帮助。