У меня есть веб-сервис jax-ws, и я использую базовую аутентификацию. Я покажу вам 2 фрагмента кода, которые важны в первую очередь в моей проблеме. Web метод сервисаБазовая аутентификация JAX-WS с использованием realm
@WebMethod(operationName = "createBook")
public String createBook(@WebParam(name = "name") Book entity)
{
Logger LOG = Logger.getLogger(Bookservice.class.getName());
LOG.log(Level.INFO, secure_ctx.getUserPrincipal().getName());
веб-службы клиента
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Soapservice ss = new Soapservice();
Bookservice bs = ss.getBookservicePort();
//com.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true;
//client.addFilter(new LoggingFilter());
try
{
System.setProperty("javax.xml.bind.JAXBContext", "com.sun.xml.internal.bind.v2.ContextFactory");
BindingProvider bind_provider = (BindingProvider) bs;
bind_provider .getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "tom");
bind_provider .getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "jones");
this.jTextField1.setText(bs.createBook(null));
} catch (Exception e)
{
java.util.logging.Logger LOG = java.util.logging.Logger.getLogger(testframe.class.getName());
LOG.log(Level.SEVERE, null, e);
}
аутентификации не работает с правильными данными для входа или нет. Также журнал сервера иногда создает правильное имя, но когда он меняет имя пользователя, появляется «admin». Когда я вернусь к исходному имени пользователя, серверный журнал останется «admin». Я использовал этот механизм в службе отдыха с использованием трикотажа и без проблем.
Кто-нибудь знает, если это связано с отсутствием сопоставления адаптеров сервлетов в моем web.xml?
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<security-constraint>
<display-name>Constraint1</display-name>
<web-resource-collection>
<web-resource-name>soapservice</web-resource-name>
<description/>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>Access to book services</description>
<role-name>administrator</role-name>
<role-name>developer</role-name>
<role-name>manager</role-name>
</auth-constraint>
<user-data-constraint>
<description/>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>jdbcr</realm-name>
</login-config>
<security-role>
<description>Has complete priviligies on access to soap api</description>
<role-name>administrator</role-name>
</security-role>
<security-role>
<description>Develops applications using soap api, has certain priviligies</description>
<role-name>developer</role-name>
</security-role>
<security-role>
<description>Has access to users and their role priviligies</description>
<role-name>manager</role-name>
</security-role>
</web-app>
Мое изменение выходных данных в журнале во время работы не имеет смысла. INFO: Дэвид INFO: Дэвид INFO: админ INFO: админ INFO: админ
Дэвид является правильным пользователем, я не знаю, где администратор пришел из ??
Какой сервер приложений используется для развертывания? –
@Paul Glassfish 3.1.2.2 – David031