Spring Security OAuth2实现单点登录

1、概述 在本教程中,我们将讨论如何使用 Spring Security OAuth 和 Spring Boot 实现 SSO(单点登录)。 本示例将使用到三个独立应用 一个授权服务器(中央认证机制) 两个客户端应用(使用到了 SSO 的应用) 简而言之,当用户尝试访问客户端应用的安全页面时,他们首先通过身份验证服务器重定向进行身份验证。 我们将使用 OAuth2 中的 Authorization Code 授权类型来驱动授权。 2、客户端应用 先从客户端应用下手,使用 Spring Boot
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

MVC四大筛选器—ActionFilter&ResultedFilter ExceptionFilter

AuthorizeFilter筛选器 在Action的执行中包括两个重要的部分,一个是Action方法本身逻辑代码的执行,第二个就是Action方法的筛选器的执行。 MVC4中筛选器都是以AOP(面向方面编程)的方式来设计的,通过对Action方法上标注相应的Attribute标签来实现。MVC4提供了四种筛选器,分别为:AuthorizationFilter、ActionFilter、ExceptionFilter和ResultFilter,他们分别对应了四个筛选器接口IAuthorizat
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

Flask之request

导入: from flask import request request的一些常见参数 form 一个包含解析过的从 POST 或 PUT 请求发送的表单对象的 MultiDict 。请注意上传的文件不会在这里,而是在 files 属性中。 args 一个包含解析过的查询字符串( URL 中问号后的部分)内容的 MultiDict 。 values 一个包含 form 和 args 全部内容的 CombinedMultiDict 。 cookies 一个包含请求中传
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

初识 Flask

一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架 2.Tornado 主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架 3.Flask 主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架 Django 通常用于大
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

hibernate的inverse用法

Inverse和cascade是Hibernate映射中最难掌握的两个属性。两者都在对象的关联操作中发挥作用。 1.明确inverse和cascade的作用 inverse 决定是否把对对象中集合的改动反映到数据库中,所以inverse只对集合起作用,也就是只对one-to-many或many-to-many有效(因 为只有这两种关联关系包含集合,而one-to-one和many-to-one只含有关系对方的一个引用)。 cascade决定是否把对对象的改动反映到数据库中,所以cascade对
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

ToDoList功能开发

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ToDoList</title> <script src="./vue.js"></script> </head> <body> <div id="root"> <div> <input v-model="inputValue"/> <button @click="handleSubmit">提交</button> </div> <ul> <li v-fo
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

DocX Xceed.Words.NET操作Word,插入特殊符号

x 传送门,我们走... DocX的Github传送门 介绍一 介绍二 写入特殊符号 开始... 自己做一个工具,要导出Word的,当时刚开始想使用Xceed.Words.NET.dll第三方插件进行开发。 但是网络上真的找不到太多相关资料来进行参考的好不好(不知道当初为毛要选择这个,听说很强大?) 然后搜到了中文资料比较多的一个第三方的插件:DocX.dll,听说也挺好用的。好吧就用它了, 并且找到了Github地址(本文中第一个门),下载一个Demo下来(感觉根据Demo调试生成下,一般操
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

[vue]基础篇

https://eeweb.top/tool/bootstrap-cheatsheet/#input-group-append 1.展示 2.全选/反选 3.删除 4.搜索 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="node_modules/bootstrap/dist/css/boots
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

Python List用法

列表是最常用的Python数据类型 创建列表 创建一个列表 >>> l = [1, 2, 3, 4, 5 ] >>> l [1, 2, 3, 4, 5] 创建一个空列表(方法1) >>> l = [] >>> l [] 创建一个空列表(方法2) >>> l = list() >>> l [] 列表不是数组,列表中的数据项不需要具有相同的类型 >>> l = ['Apple', 123, True] >>> l ['Apple', 123, True] 把range()产生的内容转换成list,
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

js的三种引入方式

行内 写在HTML元素内部 <input type="button" value="按钮" onclick="alert('Hello World')" /> 内部 写在HTML文件内,用script标签包括 <head> <script> alert('Hello World!'); </script> </head> 外部 用script标签,链接外部的js文件 <script src="main.js"></script>
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

HDU 2089

算是数位dp的入门吧 求n到m之间数字中没有4和62(连着)的个数 #include <algorithm> #include <iostream> using namespace std; int dp[10][10]; void init(){ dp[0][0] = 1;//dp[0][1-9] = 1都可以 for(int i = 1; i <= 8; i++) for(int j = 0; j < 10; j++)//i位
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

用virtualenv建立独立虚拟环境 批量导入模块信息

pip3 install virtualenv mkdir env/env1 source bin/activate pip3 freeze >requirements.txt or pipreqs ./ encoding=utf8 生成一个requirements.txt的文本文档 pip3 install -r requirements.txt 批量下载模块
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

麻将(mahjong)

“为什么, 你们的力量在哪里得到如此地 ” “我们比 1 分钟前的我们还要进步, 虽然很微小, 但每转一圈就会前进一寸。这就是钻头啊!” “那才是通向毁灭的道路。为什么就没有意识到螺旋族的极限” “那是你的极限。那只不过是在封闭的宇宙里, 象国王一样将其他生命困住的你自己的极限而已。给我记好了, 我们的钻头将在这片宇宙中钻开风洞。已经倒下的人们的愿望, 和后继迩来的人们的希望。将这两股思念交织成二重螺旋, 凿出驰骋于明天的未来之路。这就是天元突破! 这就是 Gurren Lagann! 我的钻
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

POJ 3046

题目大意:蚂蚁牙黑,蚂蚁牙红:有A只蚂蚁,来自T个家族,分别记为ant[i]个。同一个家族的蚂蚁长得一样,但是不同家族的蚂蚁牙齿颜色不同。任取n只蚂蚁(S <= n <= B),求能组成几种集合? 状态:dp[i][j]:前i种中选j个可以组成的种数 决策:第i种选k个,k<=ant[i] && j-k>=0 转移:dp[i][j]=Σdp[i-1][j-k] #include<stdio.h> #include<string.h> int dp[1005][10050]; int num[1
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

移动端popstate的怪异行为

由于ios的性能在缓存页面比较好,所以一般页面的后退都会保存之前的历史页面, 不会触发页面上的js等,所以可以触发到popstate事件,而webkit的某些版本对popstate 的理解与官方标准不一致,导致每次访问页面都会同步为访问了这个页面的历史纪录, 所以popstate就被触发了,而在项目中需要IOS一个后退刷新页面 代码: window.addEventListener('popstate', function() { window.location.reload(); }
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

树_详解

树的定义   树是一种很特别的数据结构,树这种数据结构叫做“树”就是因为它长得像一棵树。但是这棵树话画成的图长得却是一棵倒着的树,根在上,叶在下。   树是图的一种,树和图的区别就在于:树是没有环的,而图是可以有环的。   树的百度定义如下:  树状图是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。   结合图来看,可能会更好理解   这就是一棵典型的二叉树 而这里,2,3共有子节点5,那么上
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

PHP上传大小限制更改

nginx+php的一些网站,上传文件大小会受到多个方面的限制,一个是nginx本身的限制,限制了客户端上传文件的大小,一个是php.ini文件中默认了多个地方的设置。 我们要根据实际网站需要作出相应的调整; 首先是php.ini 1  file_uploads = On    默认允许HTTP文件上传,此选项必须设置为On。 2  upload_max_filesize = 2M    
分类: 其他 发布时间: 08-20 23:34 阅读次数: 0

浅谈基于JavaScript的DDOS攻击

CloudFlare通过对上百万个网站进行防护,总结出最古老、最普遍的攻击非DDoS攻击莫属。在传统的DDoS攻击中,攻击者会控制大量的傀儡机,然后向目标服务器发送大量请求,阻止合法用户访问网站。 然而,最近几年DDoS攻击技术不断推陈出新:攻击者用一种新型且很有趣的方式欺骗用户参与到攻击活动中。去年CloudFlare就见证了一次使用NTP映射的攻击,可能是DDoS攻击史上最大的一次攻击(
分类: 其他 发布时间: 08-20 23:33 阅读次数: 0

linux手动磁盘分区

挂1  fdisk -l 首先查看服务器上有哪些盘  2   fdisk /dev/vdb   找到需要分区的盘    3  输入n 新建分区回车 4输入p回车 5 第一个分区 6输入第一个分区空间大小 7根据步骤依次新建分区; 8 保存 9将你建的分区做成文件系统 mkfs.xfs /dev/vdb1 如果提示command not
分类: 其他 发布时间: 08-20 23:33 阅读次数: 0

Laravel系列之windows环境安装配置(一)

最近新学了PHP的laravel框架,现在总结说说环境安装; 一:安装需要的git for windows,软件下载地址https://git-for-windows.github.io/  这个安装很简单 直接下一步安装即可; 二:安装PHP7.0;因为laravel框架的php版本较高;我自己用的是php7.0.6  可到官网下载http://windows.php.net/dow
分类: 其他 发布时间: 08-20 23:33 阅读次数: 0