我的问题是,我有一个用Java编写的Web服务,我想给用户特定的授权,例如,userA应该只访问methodA,userB应该只访问methodB。我怎样才能做到这一点?如何限制某些Web服务方法给某些用户?
非常感谢。
我的问题是,我有一个用Java编写的Web服务,我想给用户特定的授权,例如,userA应该只访问methodA,userB应该只访问methodB。我怎样才能做到这一点?如何限制某些Web服务方法给某些用户?
非常感谢。
您可以通过多种方式完成此操作,这完全取决于您的部署。但是就像在黑暗中拍摄一样,你可以在你的web.xml中限制这个。
在web.xml中创建一个安全约束...
<security-constraint>
<web-resource-collection>
<web-resource-name>MRC Customer Care</web-resource-name>
<url-pattern>/protected/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>role1</role-name>
</auth-constraint>
</security-constraint>
然后,映射这个角色(role1上)给用户...
<tomcat-users>
<user name="role1" password="tomcat" roles="role1" />
</tomcat-users>
有效的用户将能够在/ protected /上找到你的URI,假设你的web服务在那里,那么无效的用户将收到403.
这是一个潜在的答案。
我认为,这样做的最简单,最标准化的方法是春季的安全性,我觉得它很容易使用,阅读更多关于它在这里:http://www.mkyong.com/tutorials/spring-security-tutorials/
如果你不希望它的一些原因,javax.servlet.Filter是要走的路。
感谢您的回复。我想知道,用这种方式,用户能够看到受限制的方法,它是如何工作的? – emre
您是否已经实施过任何一项春季课程?它通常与SpringMVC一起使用。 – david99world
@emre如果未登录的用户尝试访问受限制/受保护的URL,它将被重定向到由spring-security提供的登录页面(您可以通过它提供的链接)来引用我在初始文章中提供的链接如果他已经登录但没有访问该URL的权限,他将看到一个403页面或类似的东西。 – comanitza
有了某种认证和权限系统?像登录一样,例如... –
您使用的是什么服务器?你在使用Spring吗? – david99world
这是一个太宽泛的问题。你使用的是什么框架?什么是您的应用程序的结构(它是一个Web应用程序)?如果适用,JEE的哪个版本?你如何识别用户? – Perception