本项目是基于慕课网的Spring Security技术栈开发企业级认证与授权,采用IDEA开发,本文章用来记录该项目的学习过程. 慕课网视频:https://coding.imooc.com/class/134.html 一.项目结构 newbe-security是父类,打包方式是pom,其余都是子模块,打包方式jar. 项目模块介绍: 二.项目依赖 2.1newbe-security父类依赖 <?xml version="1.0" encoding="UTF-8&qu…
上一篇我们讲了如何使用angular搭建起项目的前端框架,前端抽象出一个service层来向后端发送请求,后端则返回相应的json数据.本篇我们来介绍一下,如何在nodejs环境下利用express来搭建起服务端,使之正确的响应前端的请求.本文所讲的示例还是基于我们的学习项目QuestionMaker(https://github.com/Double-Lv/QuestionMaker) 运行起基于express的web服务器 express是一个web应用开发框架,它基于nodejs,扩展了很…
标题 Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(一) 技术 Spring Boot 2.Spring Security 5.JWT 运行环境 IDEA+JDK8.0+MySQL5.0+ 简述 Spring Boot 2 + Spring Security 5 + JWT 实现给RestApi增加认证控制 测试流程 下面对我们的程序进行简单的验证 1.请求获取用户列表接口:http://localhost:8080/users/userLi…
上一篇介绍了如何用express搭建起服务端MVC的开发架构,本篇我们来详细介绍一下这个Model层,也就是数据库访问层.包含如何使用mongodb搭建数据库,以及如何使用mongoose来访问数据.   mongodb的安装和启动 首先我们得安装mongodb,先去官网( http://www.mongodb.org/downloads)下载安装包,我的开发环境是Windows,所以下载Windows下的iso文件,根据提示一路安装完毕即可,没什么需要特别选择的. 安装完后,为了能在cmd中全…
前言 不知何时突然冒出“MEAN技术栈”这个新词,听起来很牛逼的样子,其实就是我们已经熟悉了的近两年在前端比较流行的技术,mongodb.express.angularjs.nodejs,由于这几项技术涵盖了从前端到后端再到数据库,可以用他们完整的开发一个web应用了,所以成了一个非常牛逼的组合,颇有当年LAMP的气势.前端要从切图仔迈向全栈的路上,这几门技术必须得有所涉猎.本系列文章利用自己虚构的一个小项目为例,对“使用MEAN技术栈开发web应用”做一个入门级的介绍.   AngularJs…
“MEAN”技术栈开发web应用 上一篇我们讲了如何使用angular搭建起项目的前端框架,前端抽象出一个service层来向后端发送请求,后端则返回相应的json数据.本篇我们来介绍一下,如何在nodejs环境下利用express来搭建起服务端,使之正确的响应前端的请求.本文所讲的示例还是基于我们的学习项目QuestionMaker(https://github.com/Double-Lv/QuestionMaker) 运行起基于express的web服务器 express是一个web应用开发…
写在前面 没错,这篇文章还是练气后期!但作者我相信筑基指日可待! 在前一篇文章当中,我们简单地分析了一下Spring Security的认证流程,知道了如果想要实现对自己用户数据(账户.角色.权限)的读取,需要实现UserDetailsService这个接口以及实现对应的loadUserByUsername 的方法,编写自己的业务逻辑.并在spring security的配置文件当中指定认证使用的业务对象 . 步骤 第一步:编写自己的User实体类 /** * @author 赖柄沣 bingf…
Spring Boot+Spring Security+JWT 实现 RESTful Api 认证(二) 摘要 上一篇https://javaymw.com/post/59我们已经实现了基本的登录和token认证接口,但是这里有个问题,对于那些活跃用户来说如果token的过期时间设置的太短,那么就会使用户频繁的登录,这样用户体验不好,所以我们需要根据一种机制来判断什么时候应该主动刷新token,并且对于活跃用户来说应该是无感知的才行,那么我这里提供一种思路,暂且叫它2倍时间机制,那么怎么理解呢,…
GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空间地  GeoServer 是 OpenGIS Web 服务器规范的 J2EE 实现的社区开源项目,利用 GeoServer 可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操作,通过 GeoServer 可以比较容易的在用户之间迅速共享空…
开发指南:http://www.cnblogs.com/xingxueliao/p/5911292.html Spring OAuth2.0 提供者实现原理: Spring OAuth2.0提供者实际上分为: 授权服务 Authorization Service. 资源服务 Resource Service. 虽然这两个提供者有时候可能存在同一个应用程序中,但在Spring Security OAuth中你可以把 他它们各自放在不同的应用上,而且你可以有多个资源服务,它们共享同一个中央授权服 务…
一,为什么oauth2要整合jwt? 1,OAuth2的token技术有一个最大的问题是不携带用户信息,所以资源服务器不能进行本地验证, 以致每次对于资源的访问,资源服务器都需要向认证服务器的token存储发起请求, 一是验证token的有效性,二是获取token对应的用户信息. 有大量的请求时会导致处理效率降低, 而且认证服务器作为一个中心节点, 对于SLA和处理性能等均有很高的要求 对于分布式架构都是可能引发问题的隐患 2,jwt技术的两个优势: token的签名验证可以直接在资源服务器本地…
目录 1.1     配置 1.2     AuthenticationTrustResolver 对于匿名访问的用户,Spring Security支持为其建立一个匿名的AnonymousAuthenticationToken存放在SecurityContextHolder中,这就是所谓的匿名认证.这样在以后进行权限认证或者做其它操作时我们就不需要再判断SecurityContextHolder中持有的Authentication对象是否为null了,而直接把它当做一个正常的Authentic…
本文参考或摘录自:http://haohaoxuexi.iteye.com/blog/2157769 本文使用Spring Security自带的方式连接数据库对用户进行认证. 1.Spring Security 默认的表脚本: /* Navicat MySQL Data Transfer Source Server : localhost Source Server Version : 50621 Source Host : localhost:3306 Source Database : s…
这里接着上一章的自定义过滤器,这里主要的是配置自定义认证处理的过滤器,并加入到FilterChain的过程.在我们自己不在xml做特殊的配置情况下,security默认的做认证处理的过滤器为UsernamePasswordAuthenticationFilter,通过查看源码知道,做认证处理的方法为attemptAuthentication,这个方法的主要作用就是将用户输入的账号和密码,封装成一个UsernamePasswordAuthenticationToken对象,然后通过setDetai…
本篇文章主要围绕下面几个问题来深入源码: 用户认证流程 认证结果如何在多个请求之间共享 获取认证用户信息 一.用户认证流程 上节中提到Spring Security核心就是一系列的过滤器链,当一个请求来的时候,首先要通过过滤器链的校验,校验通过之后才会访问用户各种信息. 这里要说明的是在过滤器的最前端有一个SecurityContextPersistenceFilter,当请求进来和返回的时候都会经过这个过滤器,它主要存放用户的认证信息.这里先简单提一下,后面会详解. 当用户发送登录请求的时候(…
在第一节 Spring Security笔记:Hello World 的基础上,只要把Spring-Security.xml里改一个位置 <http auto-config="true"> <intercept-url pattern="/admin" access="ROLE_USER" /> <http-basic /> </http> 注意第三行,加上<http-basic/>后,…
配置自定义的用户存储 我们在 SecurityConfig 的配置类中 重写了 configure(AuthenticationManagerBuilder auth) 方法,我们可以通过 AuthenticationManagerBuilder 这个构造器类使用不同的用户存储,如 inMemoryAuthentication()基于内存的,jdbcAuthentication()基于关系型数据库的. 通过查看AuthenticationManagerBuilder的源码可以发现里面还有一个方法…
一.什么是OAuth2协议? OAuth 2.0 是一个关于授权的开放的网络协议,是目前最流行的授权机制. 数据的所有者告诉系统,同意授权第三方应用进入系统,获取这些数据.系统从而产生一个短期的进入令牌(token),用来代替密码,供第三方应用使用. 由于授权的场景众多,OAuth 2.0 协议定义了获取令牌的四种授权方式,分别是: 授权码模式:授权码模式(authorization code)是功能最完整.流程最严密的授权模式.它的特点就是通过客户端的后台服务器,与"服务提供商"的认…
1.搭建环境 1.1 ArcGIS Web3D软件环境 ArcGIS Pro 2.0(必须) ArcGIS for Enterprise 10.5.1 (从10.5开始称呼为Enterprise)包括: ArcGIS Server 10.5.1(必须) Portal for ArcGIS 10.5.1(必须) ArcGIS Web Adpter (IIS) (必须,理论上一台服务器可安装20+个) ArcGIS Data Store 10.5.1(必须,三维缓存,关系数据库PostgreSQL)…
学习第一天,今天内容相对简单,主要就是ubuntu一些常用命令及常规操作,后续涉及到环境的搭建,也会在本文再更. ubuntu环境搭建 第一种 也是最简单最方便的 通过vm虚拟机软件,下载iso镜像进行如next式安装,此处不再赘述.涉及到的软件,Oracle virtual box虚拟机,ubuntu任意发行版ISO. 第二种 把iso镜像写入u盘 然后单独在电脑上分区 进行安装 使用easyBCD等软件写入 为电脑进行单独分区,需注意:win下只能从临近盘符进行空间瘦身合并 安装ubuntu…
在<Cordova webapp实战开发:(3)后面可能会学到的东西>中我们说了一下后续大致包括的内容,今天我们继续.上周我在掌中广材集成了友盟的社交分享,今天想集成iOS应该很顺利的,但是只要一加入libSocialQQ.a就错.我对iOS也不太熟,没找到原因,头晕了,写一篇博客权当休息一下.今天我们就来搭建一下Android环境,并编写一个hello world吧.准备好了吗?Web app开发旅程即将正式开始了....... JAVA环境 安装JAVA JDK 打开我的电脑--属性--高…
Wechat开发笔记 线上环境搭建: 申请一个wechat公众平台. 手机个人微信可以用webwechat来测试. Website:https://web.weixin.qq.com/ 手机客户端扫一扫就可以登录. 在公众平台申请经过审核后,在左边菜单功能下高级功能,进入开发模式. 第一次进入开发者模式,需要填写接口的配置信息,url指向网络上的服务器中php文件. Token是 在服务器上要上传的php代码,示例代码可以从以上页面的接入指南中去下载. 打开Wx_sample.php文件. 对实…
郑重申明:如需转载本博客,请注明出处,谢谢! 这几天在学习android NDK的开发.那么首先让我们来看看android NDK开发的本质是什么. NDK(Native Development Kit),即本地开发工具,简单地说.就是在开发android应用程序的时候,在java类中调用native函数,而native函数的接口也是在java类中定义的,可是native函数终于由本地的C/C++代码实现.简单地说,就是在java中调用C/C++函数. 至于为什么要用NDK,我总结了一下,大致有…
写在前面 这个golang+vue大部分的内容是基于bydmm(橙卡)大佬的视频学来的,我在这里只是做一下个人开发的笔记,就是图一个乐,毕竟我只是个应届毕业生,如果真的要学请:bydmm的b站空间. 正式开始 这篇内容适合几乎没什么基础的新人来学这来方面的内容,但是起码得有其他语言的基础,最少大学的java学懂了一些,这里要求的go基础就需要把菜鸟教程中的内容看个大概即可,vue的话只需要你懂一些html的基础,js基础,css基础即可,这些内容都可以在w3c上学即可.接下来就可以看这个系列的巨…
要实现的核心功能 用户管理 安全设置 博客管理 评论管理 点赞管理 分类管理 标签管理 首页搜索 核心技术 数据存储 随着spring3发布以来,spring团队减少使用xml配置的使用,采用大量约定高于配置的思想. springboot是什么 ①为所有spring开发提供一个更快更广泛的入门体验 ②开箱即用,不适合时也可以快速放弃 ③提供一系列大型项目常用的非功能性特征 ④零配置(不需要XML配置,遵循“约定大于配置”) 抛弃了传统JavaEE项目繁琐的配置.学习过程,让企业级应 用开发过程变…
我们从研究org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl.class的源码开始 public class JdbcDaoImpl extends JdbcDaoSupport implements UserDetailsService, MessageSourceAware { //默认的用户查询sql public static final String DEF_USERS_BY_USERNAME_QUERY = "…
一.Form组件 day73 2018-08-10 1. 内容回顾 1. form表单组件 1. 常用字段 1. CharField() 2. ChoiceField() 2. 参数或配置 1. label="label标签显示的文本内容" 2. initial="默认值" 3. widget=forms.widgets.TextInput() --> <input typle='text'/> widget=forms.widgets.Passw…
weex: vuejs开发原生应用 nativescript: vuejs开发原生应用 ReactNative = reactjs开发原生应用 ionic = angularjs 开发原生应用…
CefSharp简介 源于Google官方 CefSharp用途 CefSharp开发示例 CefSharp应用--弹窗与右键 不弹出子窗体 禁用右键 CefSharp应用--High DPI问题 缩放比例问题 解决方案 参考 CefSharp应用--程序输出 Cef输出 开源协议 输出目录 参考 CefSharp/49环境文件下载及文件说明 CefSharp简介 源于Google官方 CEF ,全称Chromium Embedded Framework ,基于谷歌 Chromium项目的开源W…
(一) 最近做的框架一直在 spring + springmvc + mybatis 的基础上,使用框架的好处自然是 简化了自己的开发工作,定义好大的结构体系后就在里面套用方法了! 可是框架的毛病同样存在于jar 包过多,同样的功能的方法被不同的jar反复的写,最后整个项目显得很大. 如果我只是想要一个很简单的页面功能,那么 就没有必要去使用框架了. (二) 那么就搭建一个简单的 Servlet3.1 + JDBC 的结构来实现吧! (三) 1) 创建一个maven项目,在pom.xml 中引入…