跟我学Shiro - 张开涛....................................................................................... 5 第二章 身份验证 .................................................................................................. ........................................................................................... 95 会话验证................................................................................................... .................................................................................... 179 第二十二章 集成验证码 .................................................................................................0 码力 | 219 页 | 4.16 MB | 10 月前3
Apache Shiro 1.2.x Reference Manual 中文翻译甚至让人感到很痛苦,但是 Shiro却不是这样子的。一个好的安全框架应该屏蔽复杂性,向外暴露简单、直观的API,来 简化开发人员实现应用程序安全所花费的时间和精力。 Shiro能做什么呢? 验证用户身份 用户访问权限控制,比如: 判断用户是否分配了一定的安全角色。 判断用户是否被授予完成某个操作的权限 在非 web 或 EJB 容器的环境下可以任意使用Session API 可以响应认证、访问控制,或者 )执行以下命令提示符中,输入以下: mvn compile exec:java 你就会看到我们的小教程应用程序的运行和退出。 您应当会看到类似于下面的输出(译者 注:红框中的内容) 我们已经验证了应用程序成功运行——现在让我们使 Apache Shiro。当我们继续学习教程,每 次我们添加更多的代码之后,您可以运行 mvn compile exec:java 看到我们的变化的结果。 Enable Realm中获取这些数据来验证用户的身份以确保用户确实是其表述的那个 人。 Authentication Strategy(org.apache.shiro.authc.pam.AuthenticationStrategy) 如果配置了多个 Realm,AuthenticationStrategy 将会协调 Realm 确定在一个身份验证成功 或失败的条件(例如,如果在一个方面验证成功了但其他失败了,这次尝试是成功的吗?是0 码力 | 196 页 | 2.34 MB | 1 年前3
Apache Shiro参考手册中文版以下是你可以用 Apache Shiro 所做的事情: 验证用户来核实他们的身份 对用户执行访问控制,如: 判断用户是否被分配了一个确定的安全角色 判断用户是否被允许做某事 在任何环境下使用 Session API,即使没有 Web 或 EJB 容器。 在身份验证,访问控制期间或在会话的生命周期,对事件作出反应。 聚集一个或 是一个拥有许多功能的综合性的程序安全框架。下面的图表展示了 Shiro 的重点,并且这个参考手册也 会与之类似的被组织起来: Shiro 把 Shiro 开发团队称为“应用程序的四大基石”——身份验证,授权,会话管理和加密作为其目标。 Authentication:有时也简称为“登录”,这是一个证明用户是他们所说的他们是谁的行为。 Authorization:访问控制的过程,也就是绝对“谁”去访问“什么”。 INFO Tutorial - My First Apache Shiro Application lhazlewood:~/projects/shiro-tutorial\$ 我们已经验证了该程序运行成功——现在让我们启用 Apache Shiro。当我们继续本教程的时候,你可以在每次我们 添加一些代码后运行 mvn compile exec:java 来观察我们变化后的结果。0 码力 | 92 页 | 1.16 MB | 1 年前3
基于 Java EE 的企业应用系统设计 - Spring MVC 02转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL 基于 Java EE 的企业应用系统设计 Spring MVC 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 June 5, 2017 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL References Formatter) 验证器 表达式语言(EL) JSTL 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL ���� 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) 表达式语言(EL) JSTL 大纲 转换器和格式化(Converter and Formatter) 验证器 表达式语言(EL) JSTL 转换器和格式化(Converter and Formatter) ▶ Spring MVC 框架具备数据自动绑定能力,但其数据绑定并 非没有任何限制,在如何正确绑定数据方面是杂乱无章的。 ▶ 例如,Spring 总是试图用默认的语言区域将日期输入绑定到 java.util0 码力 | 56 页 | 866.07 KB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东. . 65 6.3.1 Java 垃圾回收机制 . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 6.3.2 JVM 内存溢出和参数调优 . . . . . . . . . . . . . . . . . . . . . . . 65 6.3.3 内存优化的小示例 . . . . . . . . . . . . . . . . . . 93 9.2 命令行参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.2.1 命令行参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.2.2 可变参数方法 . . . . . . . 5.1 Servlet 声明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 16.5.2 Servlet 初始参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 16.5.3 Servlet 启动时机 . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Java 应用与开发 - Java EE 过滤器编程过滤器的主要任务 本节习题 大纲 过滤器概述 Java EE 过滤器 API Java EE 过滤器编程和配置 过滤器的主要任务 本节习题 过滤器概述 O Web 开发所遇到的常见问题 ▶ 用户登录验证 ▶ 开发中文 Web 遇到的汉字乱码 常规开发会带来大量的代码冗余,需要将处理上述问题的代码从 每个 Web 组件中抽取出来,放在一个公共的地方,供所有需要 这些公共功能代码的 Web 组件调用。 Web 资源进行协作。 大纲 过滤器概述 Java EE 过滤器 API Java EE 过滤器编程和配置 过滤器的主要任务 本节习题 过滤器的主要应用领域 ▶ 登录检验 ▶ 权限审核 ▶ 数据验证 ▶ 日志登记 ▶ 数据压缩/解压缩 ▶ 数据加密/解密 大纲 过滤器概述 Java EE 过滤器 API Java EE 过滤器编程和配置 过滤器的主要任务 本节习题 接下来⋯ 过滤器概述 init(FilterConfig filterConfig) throws ServletException 初始化方法,在 Web 容器创建过滤器对象后被调用,用于完成 过滤器初始化操作,如取得过滤器配置的参数,连接外部资源。 public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws0 码力 | 31 页 | 605.91 KB | 1 年前3
Nacos架构&原理
com/alibaba/nacos Nacos 优势 易⽤:简单的数据模型,标准的 restfulAPI,易用的控制台,丰富的使用文档。 稳定:99.9% 高可用,脱胎于历经阿里巴巴 10 年生产验证的内部产品,支持具有数百万服务的大 规模场景,具备企业级 SLA 的开源产品。 实时:数据变更毫秒级推送生效;1w 级,SLA 承诺 1w 实例上下线 1s,99.9% 推送完成;10w 级,SLA 变更快了之后如何管控控制变更风险,如灰度、回滚等 敏感配置如何做安全配置 Nacos 架构 < 22 概念介绍 配置(Configuration) 在系统开发过程中通常会将⼀些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配 置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物 理运行环境进行适配。配置管理⼀般包含在系统部署的过程中,由系统管理员或者运维人员完成这 (Configuration Service) 在服务或者应用运行过程中,提供动态配置或者元数据以及配置管理的服务提供者。 23 > Nacos 架构 配置项(Configuration Item) ⼀个具体的可配置的参数与其值域,通常以 param-key = param-value 的形式存在。例如我们常 配置系统的日志输出级别(logLevel = INFO | WARN | ERROR) 就是⼀个配置项。0 码力 | 326 页 | 12.83 MB | 10 月前3
基于 Java EE 的企业应用系统设计 - Spring MVC 01无论是使用 JSP,还是使用 Struts,或是 Spring MVC,我们至少 都需要一些必须的元素: 1. 数据 2. 页面展示在这个例子中,就是 login.jsp。没有这个页面,一 切的请求、验证和错误展示也无从谈起。在页面上,我们需 要利用 HTML,把我们需要展现的数据都呈现出来。同时我 们也需要完成一定的页面逻辑,例如,错误展示,分支判断 等。 3. 处理具体业务的场所 大纲 Java 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 请求处理方法编写 每个请求处理方法可以有多个不同类型的参数,以及一个多种类 型的返回结果。 例如,如果在请求处理方法中需要访问 HttpSession 对象,则可 以添加的 HttpSession 作为参数,Spring 会将对象正确地传递给方 法。 @RequestMapping("/uri") public String addAttribute(key, value); ... } 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 编写请求处理方法 O 可以在请求处理方法中出现的参数类型 1. javax.servlet.ServletRequest 或 HttpServletRequest 2. javax.servlet.ServletResponse 或 HttpServletResponse0 码力 | 67 页 | 792.43 KB | 1 年前3
Hello 算法 1.1.0 Java版1. 递:程序不断深入地调用自身,通常传入更小或更简化的参数,直到达到“终止条件”。 2. 归:触发“终止条件”后,程序从最深层的递归函数开始逐层返回,汇聚每一层的结果。 而从实现的角度看,递归代码主要包含三个要素。 1. 终止条件:用于决定什么时候由“递”转“归”。 2. 递归调用:对应“递”,函数调用自身,通常输入更小或更简化的参数。 3. 返回结果:对应“归”,将当前递归层级的结果返回至上一层。 尾递归:递归调用是函数返回前的最后一个操作,这意味着函数返回到上一层级后,无须继续执行其他 操作,因此系统无须保存上一层函数的上下文。 以计算 1 + 2 + ⋯ + ? 为例,我们可以将结果变量 res 设为函数参数,从而实现尾递归: // === File: recursion.java === /* 尾递归 */ int tailRecur(int n, int res) { // 终止条件 if 后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、 返回地址等数据。 2. 归:当函数完成执行并返回时,对应的栈帧会被从“调用栈”上移除,恢复之前函数的执行环境。 因此,我们可以使用一个显式的栈来模拟调用栈的行为,从而将递归转化为迭代形式:0 码力 | 378 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0 Java版1. 递:程序不断深入地调用自身,通常传入更小或更简化的参数,直到达到“终止条件”。 2. 归:触发“终止条件”后,程序从最深层的递归函数开始逐层返回,汇聚每一层的结果。 而从实现的角度看,递归代码主要包含三个要素。 1. 终止条件:用于决定什么时候由“递”转“归”。 2. 递归调用:对应“递”,函数调用自身,通常输入更小或更简化的参数。 3. 返回结果:对应“归”,将当前递归层级的结果返回至上一层。 尾递归:递归调用是函数返回前的最后一个操作,这意味着函数返回到上一层级后,无须继续执行其他 操作,因此系统无须保存上一层函数的上下文。 以计算 1 + 2 + ⋯ + ? 为例,我们可以将结果变量 res 设为函数参数,从而实现尾递归: // === File: recursion.java === /* 尾递归 */ int tailRecur(int n, int res) { // 终止条件 if 后出”原则异曲同工。 事实上,“调用栈”和“栈帧空间”这类递归术语已经暗示了递归与栈之间的密切关系。 1. 递:当函数被调用时,系统会在“调用栈”上为该函数分配新的栈帧,用于存储函数的局部变量、参数、 返回地址等数据。 2. 归:当函数完成执行并返回时,对应的栈帧会被从“调用栈”上移除,恢复之前函数的执行环境。 因此,我们可以使用一个显式的栈来模拟调用栈的行为,从而将递归转化为迭代形式:0 码力 | 376 页 | 17.59 MB | 1 年前3
共 37 条
- 1
- 2
- 3
- 4













