session

CAS单点登录(一)——初识SSO

对着背影说爱祢 提交于 2020-03-18 15:50:07
某厂面试归来,发现自己落伍了!>>> 前言:其实好早就想把CAS的这一套知识整合一下,在工作上也应用到了这块,只是最近才在工作上接触到CAS,所以刚好把这些知识总结一下。这块可能是一个比较大的模块知识点,所以会有多篇文章进行逐一展开,笔者会尽量抽空更新,当然如果文章中存在错误,期望大家指出。 一、初识CAS 首先我们来说一下CAS,CAS全称为Central Authentication Service即中央认证服务,是一个企业多语言单点登录的解决方案,并努力去成为一个身份验证和授权需求的综合平台。 CAS是由Yale大学发起的一个企业级的、开源的项目,旨在为Web应用系统提供一种可靠的单点登录解决方法(属于 Web SSO )。 CAS协议至少涉及三方:客户端Web浏览器,请求身份验证的Web应用程序和CAS服务器。 它也可能涉及后端服务,如数据库服务器,它没有自己的HTTP接口,但与Web应用程序进行通信。 主要特征: 多种的协议的支持,包括CAS (v1、v2、v3)、SAML(v1、v2)、OAuth、OpenID、OpenID Connect和WS-Federation Passive Requestor 多种认证机制,可以通过JAAS,LDAP,RDBMS,X.509,Radius,SPNEGO,JWT,Remote,Trusted,BASIC,Apache Shiro

学习Spring-Session+Redis实现session共享

こ雲淡風輕ζ 提交于 2020-03-18 15:44:01
1、添加依赖 <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> <version>1.2.1.RELEASE</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.1</version> </dependency> 2、配置 spring-mvc.xml: <bean id="redisHttpSessionConfiguration" class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration"> <property name="maxInactiveIntervalInSeconds" value="600"/> </bean> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property

Python全栈之路-Django(十一)

独自空忆成欢 提交于 2020-03-18 14:53:25
1 数据库操作 app.models.py class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 EmailField(CharField): IPAddressField(Field) URLField(CharField) SlugField(CharField) UUIDField(Field) FilePathField(Field) FileField(Field) ImageField(FileField) CommaSeparatedIntegerField(CharField) 时间类: models.DateTimeField(null=True) 数字: num = models.IntegerField() num = models.FloatField() mum = models.DecimalField(max_digits=30,decimal_places=10) 枚举(Django): color_list = ( (1,'黑色'), (2,'白色'), (3,'蓝色') ) color = models.IntegerField(choices=color_list) 1. 自己操作: 自己取,自己用 2. 给Django admin使用 应用场景:选项固定 PS: FK选项动态 字段参数 null 数据库中字段是否可以为空

php_会话技术 — session

青春壹個敷衍的年華 提交于 2020-03-18 13:30:15
  session:将会话数据存储在服务器端,并且让数据能够识别浏览器的一种技术。   原理图:      通过分析原理图:   1)会在服务器开辟SESSION会话数据区保存会话数据;   2)开辟会话数据区后,将会生成一个唯一的PHPSESSID,并且返回给浏览器作为一个COOKIE数据。    session的使用 -- 基本操作   1.要使用session, 必须先开启SESSION机制,使用session_start()函数 #开启session session_start();    2.增删改查操作   我们可以通过操作$_SESSION数组变量来增删改查SESSION数据      我们还可以通过配置php.ini中session.auto_start配置项来开启SESSION机制。默认情况下,配置的值为0,表示不自动开启,我们可以修改为1,来开启自动开启SESSION机制。   (项目中不推荐使用这种方式,我们并不是所有程序页面都需要使用SESSION数据,什么时候需要就什么时候开启)    $_SESSION变量和SESSION会话数据区的关系       通过分析原理图:   1)会话数据存储在服务器的会话数据区中;   2)Session_start时,如果没有会话数据区将会开辟一个新的会话数据区;如果有,则找到该数据区,将其中的数据取出来初始化给$

The resource could not be loaded because the App Transport Security policy requires the use of a secure connection

非 Y 不嫁゛ 提交于 2020-03-18 12:56:47
xmpp 项目中遇到的问题,用苹果的通信API 写一个PUT 方法,向服务器上传一张图片。遇到如题问题。 Plist 文件没有NSAppTransportSecurity属性 Dic,添加该属性,再添加二级属性NSAllowsArbitraryLoads BOOL YES 苹果文档:https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html stackOverflow:http://stackoverflow.com/questions/32631184/the-resource-could-not-be-loaded-because-the-app-transport-security-policy-requi 工具类:HTTPTool.h 1 #import <Foundation/Foundation.h> 2 3 typedef void (^HttpToolProgressBlock)(CGFloat progress); 4 typedef void (^HttpToolCompletionBlock)(NSError *error); 5 6 7 8 @interface HttpTool :

web.xml文件的作用

牧云@^-^@ 提交于 2020-03-18 11:26:16
每个javaEE工程中都有web.xml文件,那么它的作用是什么呢?它是每个web.xml工程都必须的吗? 一个web中可以没有web.xml文件,也就是说,web.xml文件并不是web工程必须的。 web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等。 当你的web工程没用到这些时,你可以不用web.xml文件来配置你的Application。 每个xml文件都有定义它书写规则的Schema文件,也就是说javaEE的定义web.xml所对应的xml Schema文件中定义了多少种标签元素,web.xml中就可以出现它所定义的标签元素,也就具备哪些特定的功能。web.xml的模式文件是由Sun 公司定义的,每个web.xml文件的根元素为<web-app>中,必须标明这个web.xml使用的是哪个模式文件。如: <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:/

【Django】Cookie与Session

不问归期 提交于 2020-03-18 07:24:59
cookie与session 会话跟踪技术 在一个会话的多个请求中共享数据,比如: - 请求银行主页; - 请求登录(请求参数是用户名和密码); - 请求转账(请求参数与转账相关的数据); - 请求信誉卡还款(请求参数与还款相关的数据) 在这上会话中当前用户信息必须在这个会话中共享的 Cookie Cookie规范 Cookie大小上限为4KB; 一个服务器最多在客户端浏览器上保存20个Cookie; 一个浏览器最多保存300个Cookie; Cookie与HTTP头 Cookie是通过HTTP请求和响应头在客户端和服务器端之间传递的: Cookie:请求头,客户端发送给服务器端; 格式:Cookie: a=A; b=B; c=C。即多个Cookie用分号离开; Set-Cookie:响应头,服务器端发送给客户端; 一个Cookie对象一个Set-Cookie: Set-Cookie: a=A Set-Cookie: b=B Set-Cookie: c=C Cookie的覆盖 如果服务器端发送重复的Cookie那么会覆盖原有的Cookie,例如客户端的第一个请求服务器端发送的Cookie是:Set-Cookie: a=A;第二请求服务器端发送的是:Set-Cookie: a=AA,那么客户端只留下一个Cookie,即:a=AA。 django中的cookie语法 设置cookie:

hibernate面试题

和自甴很熟 提交于 2020-03-18 00:49:15
1.hibernate优点 ①.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 ②.Hibernate 是一个基于JDBC的主流持久化框架,是一个优秀的ORM 实现。他很大程度的简化DAO层的编码工作 ③.hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2.hibernate的缓存机制 Session提供了一级缓存的功能,默认总是有效的。Session并不会立即把这种改变提交到数据库,除非显示调用了Session的flush()方法或通过close()方法关闭Session。 SessionFactory级别的二级缓存是全局性的,所有的Session可以共享这个二级缓存。不过二级缓存默认是关闭的。一级缓存和二级缓存都是对整个实体进行缓存,不会缓存普通属性。 查询缓存是将HQL或SQL语句以及它们的查询结果作为键值对进行缓存,对于同样的查询可以直接从缓存中获取数据。查询缓存默认也是关闭的,需要显示开启。 3.hibernate查询数据方式 HQL、原生sql、条件查询QBC 4.hibernate如何处理并发问题 1)设置事务隔离级别。 Serializable:串行化。隔离级别最高 Repeatable Read:可重复读 Read Committed:已提交数据读

Hibernate学习之面试问题汇总

会有一股神秘感。 提交于 2020-03-18 00:47:38
1. Hibernate 的检索方式有哪些 ? ① 导航对象图检索 ② OID检索 ③ HQL检索 ④ QBC检索 ⑤ 本地SQL检索 2. 在 Hibernate 中 Java 对象的状态有哪些 ? ①. 临时状态(transient):不处于 Session 的缓存中,OID 为 null 或等于 id 的 unsaved-value 属性值 ②. 持久化状态(persistent):加入到 Session 的缓存中。 ③. 游离状态(detached):已经被持久化,但不再处于 Session 的缓存中。 3. Session的清理和清空有什么区别? 清理缓存调用的是 session.flush() 方法. 而清空调用的是 session.clear() 方法. Session 清理缓存是指按照缓存中对象的状态的变化来同步更新数据库,但不清空缓存;清空是把 Session 的缓存置空, 但不同步更新数据库; 4. load()和get()的区别 ①:如果数据库中,没有 OID 指定的对象。通过 get方法加载,则返回的是一个null;通过load加载,则返回一个代理对象,如果后面代码如果调用对象的某个属性会抛出异常:org.hibernate.ObjectNotFoundException; ②:load 支持延迟加载,get 不支持延迟加载。 5. hibernate

SSH经典的面试题

余生长醉 提交于 2020-03-17 23:22:12
题目1:Hibernate工作原理及为什么要用? 原理: hibernate,通过对jdbc进行封装,对 java类和 关系数据库进行mapping,实现了对关系数据库的面向对象方式的操作,改变了传统的jdbc + sql操作数据的方式,从而使开发人员可以话更多精力进行对象方面的开发 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 题目2: 什么是Hibernate延迟加载? 延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另外在Hibernate3中还提供了对属性的延迟加载。 题目3