java - HashLoginService 和 Jetty9

标签 java security jetty jetty-9

我正在尝试以编程方式设置用户名/密码组合:

    HashLoginService loginService = new HashLoginService();
    loginService.setName("myrealm");

    Credential credential = new Password("password");

    AbstractLoginService.UserPrincipal principal =
            new AbstractLoginService.UserPrincipal("username",credential);

    Subject subject = new Subject();
    subject.getPrincipals().add(principal);
    subject.getPrivateCredentials().add(credential);


    loginService.getIdentityService().newUserIdentity(
            subject,
            principal,
            new String[]{"users"});

但是我得到了 401。我在这里错过了什么? 以前可以做简单的

  loginService.putUser("username",
            new Password("password"),
            new String[]{"users"});

但不适用于 jetty 9。

希望得到一些指导。谢谢!

最佳答案

使用以下代码解决您遇到的问题,并针对 jetty 版本 9.4.8 进行了测试:

HashLoginService loginService = new HashLoginService("MyRealm");

UserStore userStore = new UserStore();
userStore.addUser(userName, new Password("password"), new String[] { "users"});

loginService.setUserStore(userStore);

关于java - HashLoginService 和 Jetty9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44263651/

相关文章:

Java ID3 音频标签库

java - 在 Java 中授予 macOS 上的权限后运行 .command 文件

java - 如何高效地一次加载多张图片?

asp.net - 如何使用 ASP.NET 和 JKS 证书访问第三方组件?

security - sealert 返回与 ls -Z 不同的上下文

JAVA-生成预定的JSON

java - 我应该使用哪些 Java 加密算法?

java - 如何获得对密码套件 TLS_PSK_WITH_AES_128_GCM_SHA256 的支持?

jetty - 将 cometd session 与 HTTP session 配对

gwt jetty jndi 查找失败