簡體   English   中英

用Java保護RESTful Web服務

[英]Secure RESTful web services in Java

我想保護RESTful Web服務。 這是我的代碼:

UserService.java

@Path("/UserService")
public class UserService
{
    @GET
    @Produces("text/plain;charset=UTF-8")
    @Path("/hello")
    public String sayHello(@Context SecurityContext sc) {
        if (sc.isUserInRole("admin"))  
            return "Hello World!";
        throw new SecurityException("User is unauthorized.");
    }
}

web.xml

<display-name>RestfulWebService</display-name>
<servlet>
    <servlet-name>Jersey RESTful Application</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.tutorialspoint</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>Jersey RESTful Application</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

當我嘗試此鏈接

http://localhost:8080/RestfulWebService/UserService/hello

它總是給我一個未經授權的例外。 那么,如何使代碼返回hello world並使其得到授權?

首先你需要添加一個登錄濾波器描述攔截請求這里 在此過濾器中,您可以使用以下命令設置安全上下文-

RequestContext.setSecurityContext(securityContext);

請記住從請求中截取“ admin”用戶名,並在上述securityContext設置。

可以使用HTTP基本身份驗證來傳遞用戶名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM