我正在设计一组用于访问URL的REST API。根据我的要求,有两个网址:
http://localhost:3126/securitydemo/webapi/db/students
查看所有学生无需访问权限和
http://localhost:3126/securitydemo/webapi/db/students/1
仅允许ROLE_USER
。
我的Spring Security配置:
<http auto-config="true" use-expressions="true">
<intercept-url pattern="**/students/*" access="hasRole('ROLE_USER')" />
<http-basic/>
</http>
如果我使用模式**/students/*
,则不会发生基本安全弹出窗口。如果我使用/**
它正常工作。
如何拦截具有不同安全级别的两个网址?
我的REST服务类:
@Path("/db")
@Produces(MediaType.APPLICATION_JSON)
public class StudentService {
static StudentDao data = new StudentDaoImpl();
@Path("/students")
@GET
public Response getStudents(){
GenericEntity<List<Student>> entity = new GenericEntity<List<Student>>(data.getAllStudents()){};
return Response.ok(entity).build();
}
@Path("/students/{id}")
@GET
public Response getStudent(@PathParam("id") int id){
return Response.ok(data.getStudent(id)).build();
}
}
答案 0 :(得分:-2)
试试这个
asyncResponse.resume(
Response.ok(stream, MediaType.APPLICATION_JSON)
.cookie(new NewCookie("key","value")).build());