我正在使用带有 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();
}
}