【问题标题】:Wildfly: authorization fails after server restartWildfly:服务器重启后授权失败
【发布时间】:2020-12-07 09:18:25
【问题描述】:

我首先进行所需的设置(如下所述)。一切正常,但是当我重新启动 standalone.sh 并执行 SOAP 请求时,我只会收到以下响应:

<html>
   <head>
      <title>Error</title>
   </head>
   <body>Unauthorized</body>
</html>

在终端中使用standalone.sh 我得到:

ERROR [org.jboss.security] (default task-1) PBOX00261: Failed to load users/passwords/roles files: java.io.IOException: PBOX00072: Properties file users.properties/defaultUsers.properties not found

我应该怎么做才能使授权生效?

设置

这就是我设置所有内容的方法:

  1. 我运行 mvn archetype:generate 并从 org.wildfly.archetype:wildfly-javaee7-webapp-ear-blank-archetype 原型创建项目

groupId:pl.edu.agh.soa

artifactId:实验室

  1. 我在lab/lab-ejb/src/main/java/pl/edu/agh/soa中创建了一个类Hello.java
@Stateless
@WebService
@SecurityDomain("domain1")
@DeclareRoles({"developer"})
@WebContext(
   authMethod="BASIC",
   transportGuarantee="NONE")
public class Hello {

    private List<String> subjects = new ArrayList<>();
    private String name;
    private String surname;

    @WebMethod
    @RolesAllowed("developer")
    @XmlElementWrapper(name="subjects")
    @XmlElement(name="subject")
    public List<String>
    listSubjects(@WebParam(name="filter") String filter) {
        List<String> filtered = new ArrayList<>();
        for(String elem : this.subjects) {
            if(elem.contains(filter)) {
                filtered.add(elem);
            }
        }
        return filtered;
    }

    @WebMethod
    @RolesAllowed("developer")
    @WebResult
    public String
    addSubject(@WebParam(name="subj") String subj) {
        this.subjects.add(subj);
        return "After add: " + this.subjects.toString();
    }

    @WebMethod
    @RolesAllowed("developer")
    @WebResult
    public String
    editName(String name) {
        String before = this.name;
        this.name = name;
        
        return "Before: " + before;
    }

    @WebMethod
    @RolesAllowed("developer")
    @WebResult
    public String
    editSurname(String surname) {
        String before = this.surname;
        this.surname = surname;
        
        return "Before: " + before;
    }
}
  1. 我用 add-user.sh 添加user3
  2. 使用jboss-cli.sh 创建一个新的安全域,然后粘贴:

/subsystem=security/security-domain=domain1/:add(cache-type=default)

/subsystem=security/security-domain=domain1/authentication=classic:add(login-modules=[{"code"=&gt;"UsersRoles","flag"=&gt;"required","module-options"=&gt;[("usersProperties"=&gt;"users.properties"),("rolesProperties"=&gt;"roles.properties")]}])

  1. 我在lab/lab-ejb/src 中创建users.propertiesroles.properties 文件

【问题讨论】:

    标签: java maven soap wildfly


    【解决方案1】:

    您可以尝试将roles.propertiesusers.properties 放在另一个目录中,例如:\wildfly-20.0.1.Final\standalone\configurationsrc/main/resources

    check the security documentation

    【讨论】:

    • 将这些文件放入src/main/resources 确实有效。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 2015-07-21
    • 2016-02-28
    相关资源
    最近更新 更多