`
kong0itey
  • 浏览: 299394 次
社区版块
存档分类
最新评论
文章列表
Remember me 对于经常访问站点的用户有一个便利的功能就是 remember me 。这个功能允许一个再次访问的用户能够被记住,它通过在用户的浏览器上存储一个加密的 cookie 来实现的。如果 Spring Security 能够识别出用户提供的 remember me cookie ,用户将不必填写用户名和密码,而是直接登录进入系统。   与到目前为止我们介绍的其它功能不同, remember me 功能并不是在使用 security 命名空间方式的配置中自动添加的。让我们尝试这个功能并查看它是怎样影响登录流程的。 实现 rem ...
  Remember me 是否安全? 对我们精心保护的站点来说,为了用户体验而添加的任何与安全相关的功能,都有增加安全风险的潜在可能。按照其默认方式, Remember me 功能存在用户的 cookie 被拦截并被恶意用户重用的风险。下图展现了这种情况是如何发生的:     使用 SSL (第四章进行讨论)以及其他的网络安全技术能缓解这种类型攻击的风险,但是要注意的是还有其他技术如跨站脚本攻击( XSS )能够窃取或损害一个 remembered user session 。为了照顾用户的易用性,我们不会愿意让用户的财产信息或个人信息因为 r ...
实现修改密码管理 现在我们将要对基于内存的 UserDetailsService 进行简单的扩展以使其支持用户修改密码。因为这个功能对用户名和密码存于数据库的场景更有用,所以基于 o.s.s.core.userdetails.memory.InMemoryDaoImpl 扩展的实现不会关注存储机制,而是关注框架对这种方式扩展的整体流程和设计。在第四章中,我们将通过将其转移到数据库后台存储来进一步扩展我们的基本功能。 扩展基于内存的凭证存储以支持修改密码 Spring Security 框架提供的 InMemoryDaoImpl 内存凭证存储使用了一个简单的 ...
实现自定义的JDBC UserDetailsService 正如在前面章节中的那个练习,我们将以基本的 JdbcDaoImpl 作为起点,将其进行扩展以支持修改密码功能。 创建一个自定义的 JDBC UserDetailsService 在 com.packtpub.springsecurity.security 包下创建如下的类:   Java代码   public   class  CustomJdbcDaoImpl  extends  JdbcDaoImpl  implements     ...
这次上传的部分内容是入门级的,比较简单,但是本章整体的功能还是非常重要的。     第四章   凭证安全存储 到现在为止,我们已经将 JBCP Pets 站点做了一些用户友好性方面的升级,包括一个自定义的登录页、修改密码以及 remember me 功能。   在本章中,我们将会把到目前为止都在使用的内存存储转移到数据库作为后台的认证存储。我们将会介绍默认的 Spring Security 数据库 schema ,并介绍自定义扩展 JDBC 实现的方式。   在本章的课程中,我们将会: l  理解 ...
1.写分页标签的相关支持类 package com.lowca.activity.expand.struts; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.components.UIBean; import com.opensymphony.xwork2.util.ValueStack; public class Pagebar extends UIBean { pr ...
/* *说明: * 该方法主要分析密码的内容构成,密码长度等情况,然后评分划分密码强度等级 *参数: * pwd 密码,字符串类型 * obj 密码强度显示的地方,必须是jquery封装对象 * minLen 密码最小长度 * maxLen 密码最大长度 */ function showPassstrength(pwd, obj, minLen, maxLen) { var dictionary = []; var containsAToZ = function(str) { var aToZ = [ "a" ...
这里只是第二篇,前面的内容请参阅上一篇 五、常用方法及注意问题 1. 用其他方式替代默认的 SUBMIT $().ready(function() {  $("#signupForm").validate({         submitHandler:function(form){             alert("submitte ...
           jQuery 校验 官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 一导入 js 库 <script src="../js/jquery.js" type="text/javascript"></script> <script src="../js/jquery.validate.js" type="text/javascript"> ...
Cosmos框架是一个由国内开发人员开发的一款J2EE中间层框架,框架的主页在: http://code.google.com/p/cosmos4j/ 在1.0.3中,增加了一个将动态页面静态化的工具过滤器,下面把这个过滤器的使用简单介绍一下: 刚刚讨论了很多关于页面静态化的帖子,在这里把Cosmos中关于页面静态化的解决方案贴出来,应该说这个方案能基本上解决上面帖子讨论的所有问题,包括分页。 第一步、在开发中,一定要将所有链接转化成静态链接,即:*****.html的格式; 第二部、部署Cosmos中所附带的静态化的过滤器,部署方法如下: <filter>   <displ ...
<input type="text" value="邮箱/会员账号/手机号" id="username" style="width:150px;height:24px;"/> <div id="pwd_warpper" style="width:150px;height:24px;"> <input type="text" value="请输入密码" id="_password" ...
由于js语言自身语法的灵活性,使得在js程序中出现了各种各样的代码风格,但也正因为如此,导致了代码的可读性和可维护性大大降低,特别随着项目的不断更新,js代码的不断增多,到后期维护时甚至连自己写的代码都不知所以然了,因此确定一种好的代码风格是很有必要的。 近两年随着ajax的兴起,js变得越来越受“重用”,js开始在web开发中中充当着非常重要的角色,因此也开始遇到了各种各样的问题。于是很多牛人们就提出了js的面向对象编程方法。 使用面向对象的编程思想实现js代码其实也并不难,实现方法也又多种,比如prototype原型,new object()等方法。前面的每个方法都有其自己的优缺点,但都 ...
联动菜单代码 /* * 这是一个省市县级联的选择器采用ajax的方式来调用数据源 * ajax页面接收2个参数,level和parentid,这2个参数作为查询条件 * 其中level代表地区等级,1=省,2=市,3=县 * 另一个参数parentid代表要查询的地区的 ...
这是我整理的一个ip地址查询数据库,希望能对大家有点帮助,我已经在我的项目里用了。 经过测试,在我的机器上查询一个ip大约耗时0.016秒,查询结果与ip138大部分一致 使用方法: 1.导入下面的sql脚本(本人是从mysql导出来的) 2.参照下面程序中得search方法,数据库相关参数记得改成你自己的,加上驱动包 import java.io.*; import java.sql.*; import java.util.HashMap; import java.util.Map; import java.util.Random; public class Test { ...
import java.util.concurrent.CountDownLatch; public class Test { public static void main(String[] args) { int num = 100000; test1(num); test2(num); } private static void test1(int max) { long t1 = System.currentTimeMillis(); int n = method1(max); long t2 = System.curre ...
Global site tag (gtag.js) - Google Analytics