0

我正在使用带有 BASIC 身份验证的码头,我需要在我的单元测试中对我的客户进行身份验证,但我得到了这个:

WARN:  AUTH FAILURE: user admin
Failed : HTTP error code : 401

我不明白出了什么问题。

如果我像这样使用属性文件,它的工作原理:

领域属性

admin: adminpwd,admin,user

但是,如果我将属性文件与数据库中的信息一起使用,则会收到错误 401

领域属性

jdbcdriver = org.postgresql.Driver
url = jdbc:postgresql://localhost:5432/test
username = postgres
password = test
usertable = admins_users
usertablekey = id
usertableuserfield = user
usertablepasswordfield = userpdw
roletable = roles
roletablekey = id
roletablerolefield = role_name
userroletable = users_roles
userroletableuserkey = user_id
userroletablerolekey = role_id
cachetime = 300

如何使用此文件对我的客户进行身份验证?为什么我的数据库中的用户被忽略了?

我像这样启动码头服务器:

private Server server;

@Before
public void before() throws Exception {
    server = new Server();

    Connector connector = new SelectChannelConnector();
    connector.setPort(8080);
    server.setConnectors(new Connector[] { connector });

    WebAppContext webappcontext = new WebAppContext();
    webappcontext.setContextPath("/upload");
    webappcontext.setWar("/home/user/upload.war");

    HandlerCollection handlers = new HandlerCollection();
    handlers.setHandlers(new Handler[] { webappcontext,
            new DefaultHandler() });

    server.setHandler(handlers);
    HashUserRealm myrealm = new HashUserRealm("MyRealm",
            "/home/user/realm.properties");
    server.setUserRealms(new UserRealm[] { myrealm });

    try {
        server.start();
    } catch (Exception e) {
        e.printStackTrace(); 
    }
}
4

1 回答 1

1

您正在配置此处提到的 JDBCLoginService,对吗?

http://www.eclipse.org/jetty/documentation/current/configuring-security.html#jdbc-login-service

您还可以编辑 jetty.xml 文件并启用 dumpOnServerStart 选项,您应该会看到如何配置的列表,这将确保您拥有正确的映射。

更多关于转储功能的信息:

http://www.eclipse.org/jetty/documentation/current/jetty-dump-tool.html

于 2013-07-16T12:35:59.803 回答