我正在使用Jersey学习JAX-RS并在JBoss EAP 6.3上部署。我正在开发一个测试应用程序,它提供不同客户使用的Web服务。我根据角色和用户名/密码(Realm正确配置和UP& Running)正确设置了基本身份验证系统。当我的客户端应用程序使用WS时,一切正常。
的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>testWS</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Realm</realm-name>
</login-config>
<security-constraint>
<web-resource-collection>
<web-resource-name>Admin Pages</web-resource-name>
<url-pattern>/test/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>role-admin</role-name>
</auth-constraint>
</security-constraint>
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.providers</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.resources</param-name>
<param-value>false</param-value>
</context-param>
<servlet>
<description>Admin test</description>
<servlet-name>Admin Servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.test.webservice.utils.AuthPackageClasses</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Admin Servlet</servlet-name>
<url-pattern>/test/*</url-pattern>
</servlet-mapping>
</web-app>
我的第二步是通过需要登录表单的Web仪表板来使用相同的Web服务。我的想法是让一个免费的WS来使用登录并在Response中的Cookie中返回一些令牌;相同的令牌存储在我的数据库中。 其他WS必须由注入Cookie的Web仪表板使用,服务器必须验证存储在Cookie中的令牌。
如何验证来自两个不同身份验证系统的用户?
我应该重新设计整个身份验证系统并设置一个监听器:
有没有办法通过配置 web.xml ?
来实现这一目标如果我想实施第三个身份验证系统怎么办?我的问题是拥有相同的context-root并通过不同的方式验证调用者。