我正在設計一組用於訪問URL的REST API。按我的要求有兩個網址:REST URL的攔截URL模式
http://localhost:3126/securitydemo/webapi/db/students
查看所有不需要的訪問學生和
http://localhost:3126/securitydemo/webapi/db/students/1
僅ROLE_USER
是允許的。
我的春天安全配置:
<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();
}
}
的可能的複製(http://stackoverflow.com/questions/43704389/antmatchers [antMatchers該路徑的任何開頭匹配] -that-matches-any-beginning-of-path) – dur
你缺少一個'/'。試試'/ **/students/*'。 – dur