我有一个带有ejb模块的耳包和一个war模块。 ejb模块有一个休息服务(resteasy,因为我部署在jboss eap 7上)。
问题是休息服务和war应用程序共享相同的context-root
示例:
http://localhost/context-root/index.html
http://localhost/context-root/rest-api/config/1
问题是我的战争应用程序需要登录才能工作,但除非我以用户身份登录网络,否则我不能调用其余的API。
我认为解决方案是关于servlet的,但我无法弄清楚如何。
这是我的web.xml摘录
<servlet>
<servlet-name>future-web</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>Push Servlet</servlet-name>
<servlet-class>org.primefaces.push.PushServlet</servlet-class>
<init-param>
<param-name>org.atmosphere.cpr.broadcasterCacheClass</param-name>
<param-value>org.atmosphere.cache.UUIDBroadcasterCache</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>Push Servlet</servlet-name>
<url-pattern>/primepush/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>future-web</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
任何帮助都会受到赞赏。
感谢
更新:
这就是我所拥有的:
本地主机/上下文根/ index.html中
本地主机/上下文根/ REST的API /配置/ 1
这就是我要找的东西:
本地主机/上下文根/ index.html中
本地主机/ REST的API /配置/ 1
答案 0 :(得分:0)
您想要实施哪种登录?基于表单或http身份验证?
您需要为web.xml添加安全性约束。以下代码段添加了两个角色api
和application
。这些角色将添加到约束中的两个资源集合中。然后选择登录方法BASIC。
您可以在此处找到有关此主题的更多信息:https://docs.oracle.com/cd/E11035_01/wls100/security/thin_client.html#wp1045995
<security-role>
<role-name>api</role-name>
</security-role>
<security-role>
<role-name>application</role-name>
</security-role>
<security-constraint>
<web-resource-collection>
<web-resource-name>
API Servlet
</web-resource-name>
<url-pattern>/primepush/*</url-pattern>
</web-resource-collection>
<!-- uncomment constraint to enable authentication for webservice path
<auth-constraint>
<role-name>api</role-name>
</auth-constraint> -->
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>
Application
</web-resource-name>
<url-pattern>/*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>application</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Application Login</realm-name>
</login-config>