2013-02-06 132 views
0

我的问题是,我有一个用Java编写的Web服务,我想给用户特定的授权,例如,userA应该只访问methodA,userB应该只访问methodB。我怎样才能做到这一点?如何限制某些Web服务方法给某些用户?

非常感谢。

+0

有了某种认证和权限系统?像登录一样,例如... –

+0

您使用的是什么服务器?你在使用Spring吗? – david99world

+1

这是一个太宽泛的问题。你使用的是什么框架?什么是您的应用程序的结构(它是一个Web应用程序)?如果适用,JEE的哪个版本?你如何识别用户? – Perception

回答

0

您可以通过多种方式完成此操作,这完全取决于您的部署。但是就像在黑暗中拍摄一样,你可以在你的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.

这是一个潜在的答案。

2

我认为,这样做的最简单,最标准化的方法是春季的安全性,我觉得它很容易使用,阅读更多关于它在这里:http://www.mkyong.com/tutorials/spring-security-tutorials/

如果你不希望它的一些原因,javax.servlet.Filter是要走的路。

+0

感谢您的回复。我想知道,用这种方式,用户能够看到受限制的方法,它是如何工作的? – emre

+0

您是否已经实施过任何一项春季课程?它通常与SpringMVC一起使用。 – david99world

+0

@emre如果未登录的用户尝试访问受限制/受保护的URL,它将被重定向到由spring-security提供的登录页面(您可以通过它提供的链接)来引用我在初始文章中提供的链接如果他已经登录但没有访问该URL的权限,他将看到一个403页面或类似的东西。 – comanitza

相关问题