Tôi có triển khai nhúng Jetty 7 đang chạy dưới dạng dịch vụ và muốn thêm xác thực cơ bản không có tệp web.xml cho servlet.Xác thực cơ bản với máy chủ Jetty 7 được nhúng và không có tệp web.xml
Tôi tạo ra thông tin của tôi bằng cách sử dụng bước được mô tả here
Tôi nghĩ rằng tôi có thể tạo ra các máy chủ, tạo một handler an ninh với xác thực cơ bản và đính kèm một HashLoginService để quản lý bảo mật. Nhưng tôi rõ ràng thiếu một số điều vì tôi không bao giờ nhận được nhắc nhở cho các thông tin.
Dưới đây là mã. Mọi sự trợ giúp sẽ rất được trân trọng.
server = new Server(port);
server.addConnector(getSslChannelConnector(securePort));
server.setGracefulShutdown(1000);
server.setStopAtShutdown(true);
// create the context handler for the server
ServletContextHandler sch = new ServletContextHandler(server, WEBAPP_CONTEXT);
// attach the security handler to it that has basic authentication
sch.setSecurityHandler(getSecurityHandler());
// define the processing servlet.
sch.addServlet(new ServletHolder(new ProcessingServlet()), "/process");
.
.
private SecurityHandler getSecurityHandler() {
// add authentication
Constraint constraint = new Constraint(Constraint.__BASIC_AUTH,"user");
constraint.setAuthenticate(true);
constraint.setRoles(new String[]{"user","admin"});
// map the security constraint to the root path.
ConstraintMapping cm = new ConstraintMapping();
cm.setConstraint(constraint);
cm.setPathSpec("/*");
// create the security handler, set the authentication to Basic
// and assign the realm.
ConstraintSecurityHandler csh = new ConstraintSecurityHandler();
csh.setAuthenticator(new BasicAuthenticator());
csh.setRealmName(REALM);
csh.addConstraintMapping(cm);
// set the login service
csh.setLoginService(getHashLoginService());
return csh;
}
private HashLoginService getHashLoginService() {
// create the login service, assign the realm and read the user credentials
// from the file /tmp/realm.properties.
HashLoginService hls = new HashLoginService();
hls.setName(REALM);
hls.setConfig("/tmp/realm.properties");
hls.setRefreshInterval(0);
return hls;
}
Cảm ơn, tác phẩm mẫu. – ozhan