whi*_*kid 28 database authentication jsf authorization java-ee
目前,我正在使用JSF 2.0,Tomcat 7和MongoDB开发一个Web项目.我有一个很大的问题,如何处理数据库中用户的会话管理和身份验证/授权.
我想要的结构如下:只有登录用户才能创建事件,每个人都可以看到创建的事件.
create.xhtml - >仅适用于已登录的用户.events.xhtml - >为大家公开.我计划的基本结构是:
create.xhtml)login.xhtml@SessionScoped进入比赛)问题是:
@SessionScoped注释?在Create.java或
LoginManager.java?Bal*_*usC 60
有几种选择.选择哪一项完全取决于您.只是客观地权衡具体的优缺点,以符合自己的情况.
刚刚宣布<security-constraint>的web.xml是指它在servletcontainer配置了安全领域.你可以为你的web应用指定应登录和/或角色(一个或多个),例如检查URL模式(S) ,/secured/*,/app/*,/private/*等.
在Java EE 8之前,您遗憾的是仍然需要以特定于servlet容器的方式配置安全性.它通常在servletconainer特定的文档中描述.对于Tomcat 8,那就是Realm HOW-TO.例如,基于用户/角色表的基于数据库的域在"JDBCRealm"部分中描述.
从Java EE 8开始,最终会有一个基于JSR-375的标准API .
这样可以实现更精细的控制,但是您需要自己编写所有代码,并且您应该真正了解/了解应该如何实现这样的过滤器以避免潜在的安全漏洞.在JSF方面,您可以例如将登录用户作为会话属性,sessionMap.put("user", user)如果session.getAttribute("user")不是,则检查过滤器null.
例如,Apache Shiro,Spring Security等.这通常提供比标准容器管理身份验证更精细的配置选项,您不需要自己编写任何代码,期望登录页面和一些(XML)配置当然.
| 归档时间: |
|
| 查看次数: |
29334 次 |
| 最近记录: |