2016-12-02 13 views
0

в моем простом веб-приложении, у меня есть два метода веб-службы. один - storeName(), а другой - viewAllNames() методов.Предоставьте авторизацию с помощью apache shiro для метода обслуживания Rest в java-приложении

Административная роль может быть доступна для обоих методов. Но роль пользователя должна быть доступна с помощью метода viewAllNames().

Я собираюсь использовать Apache shiro, maven с веб-проектом и сервисом отдыха. Предоставьте разрешение только для этих двух методов.

Мой фактический отдых Ссылка:

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

Как настроить shiro.ini, web.xml и annotaion/XML.

Для широкого подхода, мне нужно передать любую другую информацию в 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.