如何确保只有在用户登录后才能访问 EJB 服务?
How to make sure that an EJB service is only accesible if an user is logged in?
如何确保只有在用户登录后才能访问 EJB 服务?
简单示例
一个简单的用户class,将存储在数据库中:
package myproject.ejb.domain;
@Entity
public class User {
String username, password;
}
还有一些邀请好友的服务接口:
package myproject.ejb.services;
@Remote
public interface Service {
/**
* Invite an user to be friends
*/
public void invite(User user);
}
如果用户已登录,Web 应用程序可能只能访问该服务。
现在我想知道Java EE 项目是否有任何推荐的身份验证方法。
强制身份验证的一种常见方法是声明访问 bean 所需的角色。例如,您指定只有具有 "Administrator" 角色的用户才能访问您的服务 bean。 this SO 问题中给出了快速的分步概述。你基本上做的是:
- 创建安全领域(在您的情况下为 JDBCRealm)
- 将用户及其角色插入领域
- 将
<security-constraint>
添加到 web.xml
以指定所需的角色
对于细粒度的访问控制,您可以使用 here
中所述的不同角色
如何确保只有在用户登录后才能访问 EJB 服务?
简单示例
一个简单的用户class,将存储在数据库中:
package myproject.ejb.domain;
@Entity
public class User {
String username, password;
}
还有一些邀请好友的服务接口:
package myproject.ejb.services;
@Remote
public interface Service {
/**
* Invite an user to be friends
*/
public void invite(User user);
}
如果用户已登录,Web 应用程序可能只能访问该服务。
现在我想知道Java EE 项目是否有任何推荐的身份验证方法。
强制身份验证的一种常见方法是声明访问 bean 所需的角色。例如,您指定只有具有 "Administrator" 角色的用户才能访问您的服务 bean。 this SO 问题中给出了快速的分步概述。你基本上做的是:
- 创建安全领域(在您的情况下为 JDBCRealm)
- 将用户及其角色插入领域
- 将
<security-constraint>
添加到web.xml
以指定所需的角色
对于细粒度的访问控制,您可以使用 here
中所述的不同角色