session

详解JNDI的lookup资源引用java:/comp/env

情到浓时终转凉″ 提交于 2020-04-07 13:54:32
ENC 的概念: The application component environment is referred to as the ENC, the enterprise naming context. 应用组件的业务逻辑应该是 ENC中取得对象。组件提供者使用标准的部署描述符指定必需的ENC入口。这些ENC入口是运行时组件所依赖的资源等信息。 一个应用组件实例使用 JNDI定位ENC。ENC的标准JNDI CONTEXT是:java;/comp/env // Obtain the application component's ENC Context iniCtx = new InitialContext(); Context compEnv = (Context) iniCtx.lookup("java:comp/env"); env 环 境是一个私有的环境,只能在该组件内部存取。对其它组件是不可见的。比如,EJB1不能存取EJB2的ENV。同样,任何一个客户端代码,不管它是运行在 应用服务器的同一个JVM内或者是远程调用,均不能访问这些JNDI。这样的话,组件之间是相互隔离的,不同组件之间可以定义它自己的环境参数。比如 EJB1可以定义自己的环境变量参数:java:comp/env/red 1 、JBOSS的命名空间: 比如一个命名: java:comp/env

springboot+vue实现websocket

帅比萌擦擦* 提交于 2020-04-07 12:30:44
1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId> <version>1.3.5.RELEASE</version> </dependency> 2.配置ServerEndpointExporter @Configuration public class WebSocketConfig { @Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); } } 这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint。 3.创建websocket的ServerEndpoint端点 @Component @ServerEndpoint("/socket") public class WebSocketServer { /** * 全部在线会话 */ private static Map<String, Session> onlineSessions = new ConcurrentHashMap<>(); /** *

十六、mysql 变量

自古美人都是妖i 提交于 2020-04-07 10:04:39
1、系统变量   1) 全局变量   2) 会话变量 2、自定义变量   1) 用户变量   2) 局部变量 一、系统变量   说明:变量由系统提供,不是用户定义,属于服务器层面   注意:如果是全局级别,则需要加 global, 如果是会话级别,则需要家 session, 如果不写,则默认 session 。   使用的语法:     1) 查看所有的系统变量       show global|session variables;     2) 查看满足条件的部分系统变量       show global|session variables like ‘%char%’     3) 查看指定的某个系统变量的值       select @@global|session. 系统变量名     4) 为某个系统变量赋值       a. set global|session. 系统变量名=值       b. set @@global|session. 系统变量名=值 二、自定义变量   说明:变量是用户自定义的,不是系统的   使用步骤:声明、赋值、使用(查看、比较、运算等)   1、用户变量     (1) 作用域:针对于当前会话(连接)有效,同于会话变量的作用域     (2) 声明并初始化(赋值的操作符: = 或 := )       a. set @用户变量名=值;  

[转] 验证码的几个常见漏洞

寵の児 提交于 2020-04-07 08:48:53
原文: http://www.blogread.cn/it/article/5016 把验证码存储在Cookie中 一般来说,我们会把验证码的值用Session存储起来,通过对比用户提交的验证码和Session中的验证码,就可以知道输入是否正确。由于Session会占用服务器资源,我曾经想过是否可以把验证码的值加密后存储在Cookie中。不过事实证明,这只是异想天开罢了。 假设验证码的值是a,通过sha1加密后得到的值为b = sha1(a),并且把b存储在Cookie中。而用户提交的验证码值为c,通过判断sha1(c)是否与b相等,可以知道输入的验证码是否正确。然而, Cookie是受客户端控制的 。如果用户事先通过肉眼看到验证码的值是a,又从Cookie中得知此时的加密值为b,那么,他只要在提交前把Cookie的值修改为b,提交的验证码值为a,就可以永远通过验证。 没有进行非空判断 这种情况可以直接用代码来说明: if (Request["captcha"] == Session["captcha"] as string) { // 验证通过,继续操作 } 假设用户绕过了系统提供的表单直接提交数据,此时 验证码还没生成,Session["captcha"]为空。用户不提交验证码时,Request["captcha"]也为空 。于是,验证通过了。 要解决这个问题

PHP 实现Session入库/存入redis

血红的双手。 提交于 2020-04-07 01:26:32
对于大访问量的站点使用默认的Session 并不合适,我们可以将其存入数据库、或者使用Redis KEY-VALUE数据存储方案 首先新建一个session表 CREATE TABLE `sessions` ( `sid` char(40) NOT NULL, `updatetime` int(20) NOT NULL, `data` varchar(200) NOT NULL, UNIQUE KEY `sid` (`sid`) USING HASH ) ENGINE=MEMORY DEFAULT CHARSET=utf8; Mysql 的memory引擎采用内存表,所有数据存储在内存,操作速度快 <?php //引入数据库文件 include "db.php"; class MySessionHandler implements SessionHandlerInterface { private $savePath; private $sessData; public $expiretime; //设置过期时间 public $db; //数据库 public function __construct($hanlder =''){ $this->db = Database::getInstance(); //获取数据库实力 ///var_dump($this->db); }

基于P2P技术实现内网到内网UDP穿透--转载

你说的曾经没有我的故事 提交于 2020-04-06 20:19:11
P2P: 只要是数据量很大,而一般利用中转服务器又需要一定规模投入的应用,我们都可以考虑用 P2P 技术。 好处: 1. 降低成本与投入。 2. 提高传输性能。 一般情况下,我们做网络程序,首先都会考虑用 TCP 的方式来实现,用 TCP 的方式主要的好处有: 1. 编写程序简单,大部分是采用 C-S 模型,也就是客户端对服务器。 2.TCP 的特性保证了数据传输的可靠性,只要适当定制好协议,基本不会有网络丢包与边界的问题。 但同时, TCP 也有缺点,就是通信效率较低。 做好 P2P 应用至少需要解决两个问题: 1. 实现内网之间机器的网络通信。 2. 需要 解决 UDP 出现的数据传输不稳定 问题。 内网穿透 假设一台在 NAT211.133.* 后的 192.168.1.77:8000 要向 NAT211.134.* 后的 192.168.1.88:9000 发送数据,假设你向 211.134.* 这个 IP 地址的 9000 端口直接发送数据包,则数据包在到达 NAT211.134.* 之后,会被当做无效非法的数据包被丢弃, NAT 在此时相当于一个防火墙 , 会对没有建立起有效 SESSION 的数据包进行拒绝转递。 当然,你也不能直接用内网地址 192.168.1.88 进行发送数据包,这就好比你在广州要打电话到上海的某个地方,如果你不加区号

JavaBean在JSP中的应用(3个JSP标签)

六月ゝ 毕业季﹏ 提交于 2020-04-06 20:04:44
一、在JSP中如何使用JavaBean 为了能在JSP页面中集成JavaBean组件和支持JavaBean的功能,JSP规范专门定义了三个JSP标签:<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>,它们分别用于创建和查找JavaBean的实例对象,设置JavaBean对象的属性,读取JavaBean对象的属性。 对于JSP页面来说, 只要一个类具有一个公共的、无参数的构造方法,就可以把这个类当做JavaBean来使用 ,如果类中有不接受任何参数的getter方法或只接受一个参数的setter方法,就可以把前缀get或set后面的部分当着一个属性名来引用。例如,JDK自带的java.util.Date类具有一个公共的、无参数的构造方法,其中还包含一个定义的方法: public void setTime(long time) 因此,在JSP页面可以把该类当做一个JavaBean来看待,且认为该JavaBean包含一个time的属性。 JSP页面按照调用JavaBean的方式对Date类进行调用 <jsp:useBean id="currentDate" class="java.util.Date" /> <jsp:setProperty name="currentDate" property="time" value="1234567

02.JMS基础

北战南征 提交于 2020-04-06 11:35:55
1.面向消息的中间件(MOM) 1.什么是MOM 面向消息的中间件,Message Oriented Middleware,简称MOM,中文简称消息中间件,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。 一个MOM系统,通常会包括客户端(Clients)、消息(Message)和 MOM,客户端是发送或者接受消息的应用程序,消息封装了要传递的内容,MOM可以存储和转发消息。如下图所示,系统A和系统B之间的消息传递,不是直接通信,而是通过中间件来间接的传递 2.MOM的好处 降低系统间通信复杂度:有了MOM,系统间的通信,不用考虑系统是什么语言开发的,也不用考虑复杂的网络编程,各个系统只需要关心自身和MOM之间如何进行消息的接受和发送即可,这些操作通过简单的API就可以完成。 提高了消息的灵活性:系统A通过MOM向系统B发送消息,消息可以存储在MOM中,并由MOM转发。即使是系统B不在线,MOM会持有这个消息,直到系统B连接并处理消息。这就是说,系统A发完消息后,就可以执行其它操作,而不必阻塞等待,尤其是对那些时间无关或者并行处理的操作,非常适用。 松散耦合:有了MOM的存在,对于系统B而言,只要发送的消息没有变化,就不必考虑系统A的变化。A系统的代码改变,不会影响到B系统,反之亦然。 2.JMS基本概念 1.JMS是什么 Java消息服务

SSO单点登录

走远了吗. 提交于 2020-04-06 07:35:15
前言:今天刚学完B站up主“楠哥教你学Java”前些日子的一个直播教学,通过录播跟着把代码敲了一遍,整理了一下。前半部分取自楠哥的笔记,后部分代码和思维导图自己归纳总结,代码细节今天是撸不完了,明后天在多研究几遍一些细节 单点登录 什么是单点登录:一处登录,处处登录,一处登出,处处登出。 用户只需要登录一次就可以访问所有相互信任的应用系统。 SSO Single Sign On 单点登录 企业业务整合解决方案 一票通 SSO 原理 当用户第一次访问淘宝的时候,因为还没有登录,会被引导到认证中心进行登录。 根据用户提供的登录信息,认证系统进行身份验证,如果通过,则登录成功,并返回给用户一个认证的凭据(token)。 当用户访问天猫时,就会将这个 token 带上,作为自己认证的凭据。 应用系统接收到请求后会把 token 送到认证中心进行校验,检查 token 的合法性。 如果通过校验,用户就可以在不用再次登录的情况下访问天猫了。 SSO 实现技术 Cookie 单点登录 使用 Cookie 作为媒介,存放用户凭证。 用户登录淘宝之后,返回一个 token,存入客户端的 Cookie 中,当用户访问天猫的时候,会自动带上 Cookie,这样 token 又传给了认证中心,进行校验。 分布式 Session 1、用户第一次登录时,将会话信息,写入分布式 Session。 2

PHP中Session ID的实现原理

荒凉一梦 提交于 2020-04-06 06:23:49
Session 的工作机制是: 为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。 PHPSESSIONID的生产算法原理如下: hash_func = md5 / sha1 #可由php.ini配置 PHPSESSIONID = hash_func(客户端IP + 当前时间(秒)+ 当前时间(微妙)+ PHP自带的随机数生产器) 从以上hash_func(*)中的数据采样值的内容分析,多个用户在同一台服务器时所生产的PHPSESSIONID重复的概率极低(至少为百万份之一),设想,但台动态Web Server能到2000/rps已经很强悍了。 另外,黑客如果要猜出某一用户的PHPSESSIONID,则他也必须知道“客户端IP、当前时间(秒、微妙)、随机数”等数据方可模拟。 php.ini配置如下: ; Select a hash function for use in generating session ids. ; Possible Values ; 0 (MD5 128 bits) ; 1 (SHA-1 160 bits) ; This option may also be set to the name of any hash function supported by ; the