2013-02-06 129 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

相關問題