我正在开发一个简单的JAX-RS服务器,我需要实现身份验证和授权。我在其他帖子中发现,标准方法是使用标准Java EE Web servlet容器安全性,将角色映射与OAuth,基于表单的身份验证或基本身份验证结合使用。
我的问题是我的公司有一个EJB客户端可以访问的自定义身份验证提供程序。身份验证提供程序在输入中获取用户名和密码,并返回具有与之关联的一系列权限的UserObject。如果权限列表包含与我的REST服务器关联的权限列表,则还授权用户请求资源,否则将引发CustomAuthorizationException。实际上这是一次性授权',所以我可以通过附加的servlet容器标准授权来强制执行它。
这是一个例子:
String username = //acquire username;
String password = // acquire password;
UserObject user = null;
try {
user = authenticationClient.login(username, password);
if(user == null){
//erro message and forward to login page
}
verifyAuthorization(user);
} catch (CustomAuthorizationException e1) {
//manage exception
} catch (CustomAuthenticationException e2) {
//manage exception
}
如何将其与JAX-RS标准集成?