Ste*_*fan 39 java authentication http jersey
我正在开发一个使用Jersey框架的REST应用程序.我想知道如何控制用户身份验证.我搜索了很多地方,我发现的最接近的文章是:http://weblogs.java.net/blog/2008/03/07/authentication-jersey.
但是,本文只能与GlassFish服务器和附加数据库一起使用.无论如何我可以在Jersey中实现一个接口并在到达请求的REST资源之前将其用作过滤器吗?
我现在想要使用基本身份验证,但它应该足够灵活,以便我可以在以后更改它.
Mag*_*und 32
我成功地使用spring security来保护我的基于Jersey的API.它具有可插入的身份验证方案,允许您稍后从Basic Auth切换到其他内容.我一般不使用Spring,只是安全性.
这是我的web.xml中的相关部分
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/security-applicationContext.xml,
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<!-- Enables Spring Security -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
<init-param>
<param-name>targetBeanName</param-name>
<param-value>springSecurityFilterChain</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
您可以将applicationContext.xml保留为空(<beans> </ beans>).可以在此处找到security-applicationContext.xml的示例
我正在做类似的事情.在我的实现中,我们使用Apache httpd前端来处理HTTP基本身份验证,它只是使用包含用户和角色的一些头信息转发所有请求.
从那时起,我正在使用servlet过滤器解析这些部分,以HttpServletRequest使用我在CodeRanch上找到的帖子来包装.这允许我使用我想要过滤的每个资源上的javax.annotation.security注释@RolesAllowed.但是,要使所有这些部分都正常工作,我必须在以下内容中将以下内容添加到我的servlet中web.xml:
<servlet>
<!-- some other settings and such
... -->
<init-param>
<param-name>com.sun.jersey.spi.container.ResourceFilters</param-name>
<param-value>com.sun.jersey.api.container.filter.RolesAllowedResourceFilterFactory</param-value>
</init-param>
...
</servlet>
Run Code Online (Sandbox Code Playgroud)
您可能会发现Eric Warriner对最近感兴趣的帖子的回答: Jersey,Tomcat和Security Annotations
| 归档时间: |
|
| 查看次数: |
61264 次 |
| 最近记录: |