首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Java中用于用户身份验证的设计模式

Java中用于用户身份验证的设计模式
EN

Stack Overflow用户
提问于 2008-10-26 14:20:21
回答 7查看 10.1K关注 0票数 2

有一些公共组件跨项目使用:

  1. 用户认证和授权
  2. 异常处理
  3. 日志记录
  4. 电子邮件
  5. DataBase访问
  6. 缓存等

是否有一个一致的设计模式可以用于每个这些公共模块?顺便说一句,框架可以不同,比如JAAS/JNDI用于用户身份验证和授权,log4j/java日志记录用于日志记录,JavaMail用于E,JDBC/Hibernate用于DataBase访问。

例如,有用于数据库访问的DAO。无论使用何种框架(JAAS/JNDI/SSO),是否有任何良好的设计模式可用于用户身份验证和授权?

EN

回答 7

Stack Overflow用户

发布于 2008-10-26 14:53:16

也许它本身并不是一个模式,但我一直认为spring注释方法非常聪明。本质上,您注释了需要保护的方法。如果您有一个很好的分层架构,那么这将使事情变得非常简单!它为你做了所有的艰苦工作。看看这里常见问题很好

作为我和罗德·约翰逊的春季训练的一部分,我只在一些基本的东西中使用过这个。

票数 2
EN

Stack Overflow用户

发布于 2008-10-26 16:34:53

对于横切关注点,您可能需要考虑面向方面编程(AOP)。与其说是一种设计模式,不如说是在您描述的场景中使用它。简而言之,您有许多需要安全性的组件,...you在其他地方定义了安全性,并让AOP系统根据需要将它添加到组件中。这样,您就可以围绕核心业务案例来设计代码,而不必过多地担心安全性。保安会自动注入。

文章可能会有所帮助。它解释了春天是如何做到的。我现在在一个大型项目中使用Spring,我不知道在没有Spring之前是如何管理的。

这里是Spring本身关于它的AOP的文档。

我知道,这可能不适用于您提到的每个场景,但这可能是一个开始。

票数 2
EN

Stack Overflow用户

发布于 2008-10-28 07:34:05

对于使用面向方面的编程,特别是拦截器,我会非常谨慎。截取程序和一些AOP实现在运行时运行,实际上并不修改正在运行的代码。

如果应用程序部署错误,没有拦截器/方面,会发生什么情况?一般来说,您的应用程序可能在很大程度上依赖于拦截器提供的功能,并且在没有它的情况下会明显中断。但授权有点不同。如果用户没有得到授权,就会发生一些事情,比如引发异常。但是在典型的情况下,用户是被授权的,而拦截是没有操作的.当应用程序在没有授权拦截器的情况下意外部署时,它有效地授权所有操作。

相反,使用显式权限检查的传统方法在敏感操作本身中包含了安全性,因此它不依赖于拦截器、过滤器或运行时方面的外部配置。

从历史上看,当AOP是一个寻找问题的解决方案时,安全性就会被当作潜在的受害者。不幸的是,AOP爱好者倾向于忽视安全地将其应用于这一重要功能所需的批判性思维。我相信这是可以做到的,但它并不像注释几个方法那么简单。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/238710

复制
相关文章
ElasticSearch(7.2.2)-映射的介绍和使用
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
cwl_java
2019/10/30
7860
视频编码器评测 - 主观评价指标与客观映射
主观评价指标 主观评价指标 常见的两个主观评价指标: MOS (Mean Opinion Score):表示为一个归一化后的单一有理数,范围为1-5,其中1是最低的感知质量,5是最高的感知质量。 MOS↑ 图像质量↑。 DMOS (Differential Mean Quality Score):是全参考测试中”无失真”和”有失真”两者之间MOS的差异。 DMOS↓ 图像质量↑。 待续… 测试方法 ACR (Absolute Category Rating) ACR-HR (Absolute Categor
不会跳舞的鸟
2022/11/16
8120
编码器原理_编码器使用方法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
6360
DNS线路
layout: default title: DNS线路 category: [技术, 网络] comments: true --- 文章介绍 填写DNS地址时候,比较好记的就114.114.
@坤的
2018/06/04
13.1K0
Hibernate之集合映射的使用(Set集合映射,list集合映射,Map集合映射)
别先生
2018/01/02
2.8K0
Hibernate之集合映射的使用(Set集合映射,list集合映射,Map集合映射)
DNS线路
---- layout: default title: DNS线路 category: [技术, 网络] comments: true --- 文章介绍 填写DNS地址时候,比较好记的就114
@坤的
2018/06/21
18.1K0
Elasticsearch文档和映射
在Elasticsearch的说法中,文档是序列化的JSON数据。在典型的ELK设置中,当您发送日志或度量标准时,它通常会发送到Logstash,Logstash按照Logstash配置的定义进行格式化,变异处理和以其他方式处理数据。生成的JSON在Elasticsearch中编制索引。
February
2018/11/08
1.7K0
3.学习Elasticsearch索引映射的概念和使用
索引映射(Index Mapping)是用来定义文档的数据结构和字段类型的过程。它类似于数据库中的表结构定义,为每个字段指定数据类型、分析器和其他属性。索引映射在创建索引时指定,也可以在索引已经存在的情况下进行更新。
AI码师
2023/08/18
2560
3.学习Elasticsearch索引映射的概念和使用
无线路由和无线AP的区别
无线AP:无线接入点是一个无线网络的接入点,俗称“热点”。主要有路由交换接入一体设备和纯接入点设备,一体设备执行接入和路由工作,纯接入设备只负责无线客户端的接入,纯接入设备通常作为无线网络扩展使用,与其他AP或者主AP连接,以扩大无线覆盖范围,而一体设备一般是无线网络的核心。
翎野君
2023/05/12
1.4K0
无线路由和无线AP的区别
教程 | 如何使用TensorFlow和自编码器模型生成手写数字
本文详细介绍了如何使用 TensorFlow 实现变分自编码器(VAE)模型,并通过简单的手写数字生成案例一步步引导读者实现这一强大的生成模型。 全部 VAE 代码:https://github.com/FelixMohr/Deep-learning-with-Python/blob/master/VAE.ipynb 自编码器是一种能够用来学习对输入数据高效编码的神经网络。若给定一些输入,神经网络首先会使用一系列的变换来将数据映射到低维空间,这部分神经网络就被称为编码器。 然后,网络会使用被编码的低维数据去
IT派
2018/03/28
9640
教程 | 如何使用TensorFlow和自编码器模型生成手写数字
教程 | 如何使用TensorFlow和自编码器模型生成手写数字
选自Medium 机器之心编译 参与:Nurhachu Null、蒋思源 本文详细介绍了如何使用 TensorFlow 实现变分自编码器(VAE)模型,并通过简单的手写数字生成案例一步步引导读者实现这一强大的生成模型。 全部 VAE 代码:https://github.com/FelixMohr/Deep-learning-with-Python/blob/master/VAE.ipynb 自编码器是一种能够用来学习对输入数据高效编码的神经网络。若给定一些输入,神经网络首先会使用一系列的变换来将数据映射到低
机器之心
2018/05/10
8870
自编码器原理和实现
一、原理: 将图像进行压缩,压缩的特征图能够保存原图像的主要特征,即根据特征图能够再次恢复原始图像。 二、具体实现方法: 自编码器分为两部分:编码和解码。编码可以使用任一卷积网络,可以根据训练数据选择,像MNIST手写数字可以选用简单的神经网络,比如LeNet。解码部分就是反向的神经网络,这样输入和输出图像大小相同,可以直接利用误差平方作为损失函数进行训练。 三、实验结果: (1)生成20幅图像:当然这里肯定是要输入20幅原始图像,然后才能查看生成的图像,否则自己设定的隐空间变量生成的图像可能没有意义。
全栈程序员站长
2022/11/15
2550
自编码器原理和实现
mybatis 高级映射和spring整合之高级映射(4)
mybatis 高级映射和spring整合之高级映射 ————————————————学习结构———————————————————— 0.0 对订单商品数据模型进行分析 1.0 高级映射 1.1 一对一查询 1.2 一对多查询 1.3 多对多查询 1.4 resultMap总结 1.5 延迟加载 2.0 查询缓存 2.1 一级缓存 2.2 二级缓存(了解mybatis
王小雷
2019/05/26
9870
opencv光流预测和remap重映射函数使用
optical flow (光流) 表示的是相邻两帧图像中每个像素的运动速度和运动方向。
languageX
2021/06/05
5.8K2
opencv光流预测和remap重映射函数使用
使用MyEclipse添加Hibernate支持和反向工程生成映射关系
本博客主要介绍如何在普通Web工程上添加Hibernate支持,以及通过数据库表反向生成映射文件。
geekfly
2022/05/06
5160
使用MyEclipse添加Hibernate支持和反向工程生成映射关系
数据地图---使用Training Dynamics来映射和诊断数据集
最近看到一篇很有趣的文章,发表于EMNLP-20,作者团队主要来自AllenAI:
beyondGuo
2022/11/30
5440
数据地图---使用Training Dynamics来映射和诊断数据集
VPS线路之163线路、CN2 GT、CN2 GIA线路简介
给大家普及下电信的163主干网络、CN2 GT线路、CN2 GIA线路,以便大家更好的去选择适合自己的VPS主机。
xianba
2020/02/28
6.6K0
VPS线路之163线路、CN2 GT、CN2 GIA线路简介
Python和Scala的集合和映射
在入门系列的最后,让我们来看看基于hash表的两种常见的数据结构,集合和映射。在Scala里的集合和映射,这两种数据结构都有可变和不可变的两种版本,区别仅仅在于类的继承关系。而Python的集合也有可变和不可变两种,内置的字典则是只有一种,但是在types模块里有基于字典的MappingProxyType的不可变的只读视图。
哒呵呵
2018/08/06
6200
ES的映射和分析
精确值和全文 1.ES的数据可以分为精确值和全文 2.精确值比如date类型或者long类型,全文指string类型(匹配) 分析过程: 1.文本分成适合倒排索引的独立的词条 2.将词条标准格式化为可搜索 2.1 字符过滤:去掉html或者&转换为and 2.2 分词器:其次字符串被分词器分成单个词条 2.3 过滤器:词条按照顺序通过token过滤器(小写化、删除无用词、增加同义词) 分析器使用场景: 当你查询一个 全文 域时, 会对查询字符串应用相同的分析器,以产生正确的搜索词条列表
苦咖啡
2018/04/28
1.5K0
1291 火车线路
 时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master 题解  查看运行结果 题目描述 Description 某列火车行使在C个城市之间(出发的城市编号为1,结束达到的城市的编号为C),假设该列火车有S个座位,现在有R笔预订票的业务。现在想对这R笔业务进行处理,看哪些预定能满足,哪些不能满足。 一笔预定由O、D、N三个整数组成,表示从起点站O到目标站D需要预定N个座位。一笔预定能满足是指该笔业务在行程范围内有能满足的空座位,否则就不能满足。一笔业务不能拆分,也就是起点和
attack
2018/04/12
7280

相似问题

ROBOTC -集成编码器编程自主

13

为什么在将线路映射到Array[String]时没有编码器?

13

RobotC -电梯编程

30

使用Vex RobotC控制循环中的端口

23

使用RobotC编程MindstormsNXT时遇到问题

112
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档