首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java的用户注册框架

java的用户注册框架
EN

Stack Overflow用户
提问于 2014-01-24 07:25:43
回答 3查看 2K关注 0票数 2

我感兴趣的是使用类似于TomEE (JavaEE6WebProfile的实现)这样的工具来构建网站(在Eclipse或NetBeans这样的工具中),因为以下内容对我很有吸引力:

  • OOB数据层完成事务、POJO/JPA以避免编写数据库层、连接池/缓存的性能、乐观的并发性
  • 表示层的MVC概念(即JSF)
  • 与运行在其他JVM实例上的其他java组件的通信功能

接下来,我想确定加入一些额外的构建块的可行性,以便为一个典型的面向web的注册/登录机制提供一个框架。

问题是,如果我使用一个成熟的web框架,比如Play、Vaadin或Grails,我可能会失去太多的灵活性和控制力。但是,我也想避免完全靠自己实现以下机制来重新发明轮子:

  • 注册过程中的电子邮件验证
  • 密码丢失/帐户恢复[更新埃米特]
  • 注册过程中的CAPTCHA [更新Security 3:集成reCAPTCHA服务埃米特]
  • 密码处理/存储的同行评审实现
  • 很好:与OWASP安全最佳实践保持一致
  • 很好:基本用户管理[Update埃米特]

理想情况下,我希望使用一个带有基本示例页的可扩展POJO层的身份验证/授权机制。从我的研究来看,JAAS可能不会削减它,而且我对Apache、Security、DeltaSpike或PicketLink这样的项目是否会给我一个前进方向的推动,或者这些项目是否有些过火有些模糊。

请更熟悉java生态系统的人解释一下,有什么可以弥补web概要文件的实现和上面描述的特性(即用户注册/登录框架)之间的差距?

EN

回答 3

Stack Overflow用户

发布于 2014-01-24 09:53:18

据我所知,Spring安全性是一种“低级别”安全性:也就是说,它用于防止授权不足的用户访问web应用程序资源,例如访问部分代码或网页,或其他web应用程序“资源”。用户注册,您可能需要自己实现的CAPTCHA (可能通过使用现有组件/库,例如用于CAPTCHA的https://stackoverflow.com/a/220452/999264等),并自己将其与spring安全性集成。

票数 3
EN

Stack Overflow用户

发布于 2014-01-29 23:16:57

检查包含security扩展的埃米特框架,它有您提到的几个特性,尽管不是全部。如果您决定自己实现一些组件,那么查看它们的代码可能会有所帮助。

但是对于来说,它似乎是部署得最广泛的解决方案,因为它是高度可定制的--例如,您可以将它配置为将用户存储在数据库或LDAP上,根据角色或访问控制列表授予访问权限等等。

我认为没有任何框架提供所有这些构建块,但是对于用户注册(例如,有一些外部服务可以管理用户数据库并代表您发送注册事务性电子邮件),这些服务或多或少保证不会掉到垃圾邮件邮箱上。

这类服务的一个例子是邮件喷射机

使用像Vaadin这样的完整堆栈的优点之一是,这些框架将为您使用大多数OWASP最佳实践,例如放置CSRF令牌或避免使用适当转义的脚本注入等等。

这在一定程度上弥补了缺乏灵活性的不足,而这种灵活性通常比看起来的要小。例如,在Spring中,几乎所有东西都是可插拔的,在Vaadin中,如果您不喜欢给定的小部件,可以定制它并编写自己的部件。

票数 3
EN

Stack Overflow用户

发布于 2014-01-30 13:19:04

CAPTCHA、电子邮件验证和密码恢复不是核心安全服务的一部分,而是更多的附加功能。核心服务是身份验证、授权和会话管理。

区分这些技术的一些方面是:

  • 使用一种特定的技术会把你绑在上面吗?
  • 需要做多少定制开发。
  • 一项技术所能支持的规模和数量,以及实现这一目标所需的努力。

技术

  • 使用spring通常意味着您需要将整个spring生态系统引入到您的项目中,它为您做了许多事情并简化了开发,但它确实意味着与spring的耦合非常紧密。
  • Apache非常健壮,它提供了一个非常好的抽象层,并且耦合更松散,它集成了许多其他技术,包括spring安全性,并提供了与JSF的web集成。
  • PicketLink是一种非常强大的技术,具有许多安全特性,但可能不像Shiro或Spring那样关键,如果您认为今后您希望您的安全框架是企业级的,并实现诸如IDP之类的功能。Picketlink可能是一个很好的选择。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21326807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档