2016-12-02 21 views
0

のRest serviceメソッドのためにapache shiroを使用して認証を提供します。私は2つのWebサービスメソッドを持っています。一方はstoreName()であり、他方はviewAllNames()である。私のシンプルなWebアプリケーションでJavaアプリケーション

管理者ロールは両方の方法にアクセスできます。しかし、ユーザーの役割はviewAllNames()メソッドにアクセスする必要があります。

私はを使用します。Apache shiro、maven、ウェブベースのプロジェクトと休憩サービス。これらの2つの方法についてのみ許可を与えます。

私の実際の残りのURLは次のとおりです。

http://localhost:8080/SimpleRest/simpleservice/store/jackreobert --> admin only 
http://localhost:8080/SimpleRest/simpleservice/viewall/   --> user only 

shiro.ini、web.xmlおよびannotaion/XMLを構成する方法。

shiroアプローチについては、これを達成するために、WebサービスのURLに他の情報を渡す必要がありますか?

SimpleService.java

package com.simple.rest; 
import javax.ws.rs.GET; 
import javax.ws.rs.Path; 
import javax.ws.rs.Produces; 
import javax.ws.rs.core.Response; 
import org.apache.shiro.authz.annotation.RequiresRoles; 
import org.json.JSONException; 

@Path("/simpleservice") 
public class SimpleService { 
    @Path("/store/{name}") 
@GET 
@Produces("application/json") 
public Response storeName(@PathParam("name") String name) throws JSONException { 
/** 
* Here insert logic 
*/ 
String result = "Given name: " + name + " successfully stored"; 
return Respo}nse.status(200).entity(result).build(); 
} 
@Path("/viewall") 
@GET 
@Produces("application/json") 
public Response viewAllNames() throws JSONException { 
    /** 
* Here retrieve logic 
*/ 
String result = "All names are taken"; 
return Response.status(200).entity(result).build(); 
}} 

私のポストのために読んでくれてありがとう。 助けてください、 ありがとうございます。

答えて

0

私の提案は、権限を使用することです。権限でアプリケーションリソースを保護します。役割に権限を割り当て、ユーザーに役割を割り当てます。

Shiro 1.4.0-RC2以降、公式のJAX-RSサポートがありますので、sampleをご覧ください。

関連する問題