喜欢研究技术的码农
Apache整合Tomcat、集群 目录 1.1 使用mod_proxy整合 1.2 使用mod_jk整合 1.3 集群 1.3.1 Tomcat集群配置 1.3.2 mod_proxy进行负载均衡 1.3.3 mod_jk进行负载均衡 Apache整合Tomcat主要有两种方式,通过mod_proxy整合和通过mod_jk整合。
HashMap、HashSet、TreeMap、TreeSet判断元素相同 目录 1.1 HashMap 1.2 HashSet 1.3 TreeMap 1.4 TreeSet 1.1 HashMap 先来看一下HashMap里面是怎么存放元素的。
基于表达式的权限控制 目录 1.1 通过表达式控制URL权限 1.2 通过表达式控制方法权限 1.2.1 使用@PreAuthorize和@PostAuthorize进行访问控制 1.2.2 使用@PreFilter和@PostFilter进行过滤 1.3 使用hasPermission表达式 Spring Security允许我们在定义URL访问或方法访问所应有的权限时使用Spring EL表达式,在定义所需的访问权限时如果对应的表达式返回结果为true则表示拥有对应的权限,反之则无。
权限鉴定结构 目录 1.1 权限 1.2 调用前的处理 1.2.1 AccessDecisionManager 1.2.2 基于投票的AccessDecisionManager实现 1.3 调用后的处理 1.4 角色的继承 1.1 权限 所有的Authentication实现类都保存了一个GrantedAuthority列表,其表示用户所具有的权限。
权限鉴定基础 目录 1.1 Spring Security的AOP Advice思想 1.2 AbstractSecurityInterceptor 1.2.1 ConfigAttribute 1.2.2 RunAsManager 1.2.3 AfterInvocationManager Spring Security的权限鉴定是由AccessDecisionManager接口负责的。
session管理 目录 1.1 检测session超时 1.2 concurrency-control 1.3 session 固定攻击保护 Spring Security通过http元素下的子元素session-management提供了对Http Session管理的支持。
匿名认证 目录 1.1 配置 1.2 AuthenticationTrustResolver 对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticationToken存放在SecurityContextHolder中,这就是所谓的匿名认证。
要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain。
Filter 目录 1.1 Filter顺序 1.2 添加Filter到FilterChain 1.3 DelegatingFilterProxy 1.4 FilterChainProxy 1.
intercept-url配置 目录 1.1 指定拦截的url 1.2 指定访问权限 1.3 指定访问协议 1.4 指定请求方法 1.1 指定拦截的url 通过pattern指定当前intercept-url定义应当作用于哪些url。
Spring Security提供了一个实现了可以缓存UserDetails的UserDetailsService实现类,CachingUserDetailsService。
AuthenticationProvider 目录 1.1 用户信息从数据库获取 1.1.1 使用jdbc-user-service获取 1.1.2 直接使用JdbcDaoImpl 1.2 PasswordEncoder 1.2.1 使用内置的PasswordEncoder 1.2.2 使用自定义的PasswordEncoder 认证是由AuthenticationManager来管理的,但是真正进行认证的是AuthenticationManager中定义的AuthenticationProvider。
异常信息本地化 Spring Security支持将展现给终端用户看的异常信息本地化,这些信息包括认证失败、访问被拒绝等。而对于展现给开发者看的异常信息和日志信息(如配置错误)则是不能够进行本地化的,它们是以英文硬编码在Spring Security的代码中的。
认证简介 目录 1.1 认证过程 1.2 Web应用的认证过程 1.2.1 ExceptionTranslationFilter 1.2.2 在request之间共享SecurityContext 1.1 认证过程 1、用户使用用户名和密码进行登录。
核心类简介 目录 1.1 Authentication 1.2 SecurityContextHolder 1.3 AuthenticationManager和AuthenticationProvider 1.
通过Proxy访问其它Cas应用 目录 1.1 原理 1.2 配置 1.2.1 代理端 1.2.2 被代理端 1.3 请求示例 考虑这样一种场景:有两个应用App1和App2,它们都是受Cas Server保护的,即请求它们时都需要通过Cas Server的认证。
单点登出 目录 1.1 Cas Client端配置单点登出 1.2 Cas Server端禁用单点登出 1.1 Cas Client端配置单点登出 单点登出功能跟单点登录功能是相对应的,旨在通过Cas Server的登出使所有的Cas Client都登出。
建立使用Cas进行单点登录的应用 目录 1.1加入cas-client-core-xxx.jar到classpath 1.2配置Filter 1.2.1AuthenticationFilter 1.
基于数据库的认证 目录 1.1 BindModeSearchDatabaseAuthenticationHandler 1.2 QueryDatabaseAuthenticationHandler 1.
修改Cas Server的其它配置 目录 1.1 修改host.name 1.2 修改SSO Session的超时策略 1.3 修改允许管理service的角色 1.4 修改logout后的重定向 1.5 禁用logout后的回调 1.6 修改service ticket的超时时间 1.1 修改host.name host.name是定义在cas.properties文件中的一个属性。
在Cas Server的WEB-INF目录下有一个deployerConfigContext.xml文件,该文件是基于Spring的配置文件,里面存放的内容常常是部署人员需要修改的内容。
Cas Server中各配置文件介绍 Cas Server中所有的配置文件都是放在WEB-INF目录及其子目录下的。 在WEB-INF/classes下的配置文件有: l cas-theme-default.properties:该文件存放的是css文件的路径,用户可以在这里指定使用的css文件为自定义的css文件,也可以更改配置文件中对应的css文件已更改默认的样式。
部署Cas Server Cas应用都需要有一个Cas Server。Cas Server是基于Java Servlet实现的,其要求部署在Servlet2.4以上版本的Web容器中。
Cas的全称是Centeral Authentication Service,是对单点登录SSO(Single Sign On)的一种实现。其由Cas Server和Cas Client两部分组成,Cas Server是核心,而Cas Client通常就对应于我们的应用。
Spring使用Cache 从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。
页面缓存 目录 1 SimplePageCachingFilter 1.1 calculateKey 1.2 可配置的初始化参数 1.2.1 cacheName 1.2.2 blockingTimeoutMillis 2 SimpleCachingHeadersPageCachingFilter 3 SimplePageFragmentCachingFilter Ehcache除了支持对象的缓存之外,还可以对Web页面进行缓存。
可阻塞的Cache—BlockingCache 在上一节我们提到了显示使用Ehcache锁的问题,其实我们还可以隐式的来使用Ehcache的锁,那就是通过BlockingCache。
Ehcache对并发的支持 在高并发的情况下,使用Ehcache缓存时,由于并发的读与写,我们读的数据有可能是错误的,我们写的数据也有可能意外的被覆盖。所幸的是Ehcache为我们提供了针对于缓存元素Key的Read(读)、Write(写)锁。
监听器 Ehcache中监听器有两种,监听CacheManager的CacheManagerEventListener和监听Cache的CacheEventListener。
缓存的查询 目录 1. 使Cache可查询 1.1 基于Xml配置 1.2 基于代码的配置 2 指定可搜索的属性 2.1 可查询属性类型 2.
设置缓存的大小 目录 1 CacheManager级别 2 Cache级别 3 大小衡量 4 配置大小示例 缓存大小的限制可以设置在CacheManager上,也可以设置在单个的Cache上。
Ehcache中储存缓存的方式 目录 1 堆内存(MemoryStore) 1.1 指定可用内存 1.2 驱除策略 1.3 元素过期 2 非堆内存(BigMemory) 3 磁盘(DiskStore) 3.1 指定可用容量 3.2 元素过期 在Ehcache中对于缓存的存储主要有三种方式:分别是堆内存、非堆内存和磁盘。
ehcache.xml简介 ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。
Ehcache简介 目录 1 CacheManager 1.1 构造方法构建 1.2 静态方法构建 2 Cache 2.1 Cache的创建 Ehcache是用来管理缓存的一个工具,其缓存的数据可以是存放在内存里面的,也可以是存放在硬盘上的。
使用connect by进行级联查询 connect by可以用于级联查询,常用于对具有树状结构的记录查询某一节点的所有子孙节点或所有祖辈节点。 来看一个示例,现假设我们拥有一个菜单表t_menu,其中只有三个字段:id、name和parent_id。
decode—对case的简化 现假设我们有一个用户表t_user,其中拥有一个表示性别的字段gender,该字段对应的值可能为0、1或者空,其中0表示“男”,1表示“女”,空表示“未填”。
intersect的用法简介 在Oracle中,“A minus B”用于将结果集B中含有的记录从结果集A中移除,即用于获取存在于结果集A中而不存在于结果集B中的记录;“A union B”和“A union all B”用于获取结果集A和结果集B的并集,其中前者将只保留重复记录中的一条,而后者将保留所有的记录;“A intersect B”用于获取结果集A和结果集B共有的记录,即它们的交集。
minus的用法简介 “minus”直接翻译为中文是“减”的意思,在Oracle中也是用来做减法操作的,只不过它不是传统意义上对数字的减法,而是对查询结果集的减法。A minus B就意味着将结果集A去除结果集B中所包含的所有记录后的结果,即在A中存在,而在B中不存在的记录。
MySQL的导入导出 1 导出 1.1 导出脚本和数据 MySQL的导出是利用MySQL安装目录的bin目录下的mysqldump指令来进行的,该命令需要在Windows的cmd命令窗口执行。
实现对properties文件的有序读写 最近遇到一项需求,要求把properties文件中的内容读取出来供用户修改,修改完后需要再重新保存到properties文件中。
使用FactoryBean接口实现自定义bean初始化 本文所要介绍的FactoryBean是Spring中定义的一个接口,当把它的实现类定义为BeanFactory中的一个bean,我们在获取其对应的bean时实际上获取的是FactoryBean所包含的那个对象,而不是它本身。
8 Maven整合Eclipse Maven整合Eclipse就是在Eclipse中安装Maven的插件,这样我们就可以直接在Eclipse上使用Maven,而不需要去命令窗口敲Maven命令了。
7 Dependency介绍 7.1 依赖的传递性 当项目A依赖于B,而B又依赖于C的时候,自然的A会依赖于C,这样Maven在建立项目A的时候,会自动加载对C的依赖。
5 Maven仓库介绍 5.1 简介 Maven仓库是用来存储工件的。Maven仓库主要包括本地仓库和远程仓库。当Maven需要一个工件的时候,它会先从本地仓库取,只有在本地仓库不存在对应的工件的时候,才会从远程仓库把对应的工件下载下来保存在本地仓库,并从本地仓库获取所需的工件。
使用POI读写word docx文件 目录 1 读docx文件 1.1 通过XWPFWordExtractor读 1.2 通过XWPFDocument读 2 写docx文件 2.1 直接通过XWPFDocument生成 2.2 以docx文件作为模板 POI在读写word docx文件时是通过xwpf模块来进行的,其核心是XWPFDocument。
Weblogic读不到Word文件 之前遇到一导出word文件的需求,我的做法是把对应导出内容放到一个word文件中,把其中变化的内容作为变量,然后把该word文件放在WEB-INF目录下用来作为模板。
POI写Word换行 本文旨在描述基于变量替换生成Word doc文件的换行方式。Word换行主要有两大类,一类是表格单元格文本的换行,另一类是表格之外的文本的换行。
使用POI转换word doc文件 目录 1 转换为Html文件 2 转换为Xml文件 3 转换为Text文件 在POI中还存在有针对于word doc文件进行格式转换的功能。
使用POI读写word doc文件 目录 1 读word doc文件 1.1 通过WordExtractor读文件 1.2 通过HWPFDocument读文件 2 写word doc文件 Apache poi的hwpf模块是专门用来对word doc文件进行读写操作的。
Spring bean处理——回调函数 Spring中定义了三个可以用来对Spring bean或生成bean的BeanFactory进行处理的接口, InitializingBean、BeanPostProcessor和BeanFactoryPostProcessor。