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 次 |
最近记录: |