前言

pom文件导入依赖

application.yml添加配置

HomeController

LoginController

项目结构截图

遇到问题

前言

http://www.sangfor.com.cn

需要实现的功能是用户使用特定的账号登录后,便可以实现上网。经过了解,现在是使用Sangfor(深信服)AC系统对用户上网行为进行管理。通过看文档和与客服沟通,决定搭建一个web的做第三方认证,因为只有这个不需要先获取IP也比较熟悉如何实现。

实际场景:我们经常能接触的场景就是连某个地方的WIFI,需要输入手机号获得验证码便可以上网。

不得不说他们的客服是真的尽责,官网的资料也非常全面,就算回答不上来,也会问相关技术人员再发邮箱反馈。当然服务器搭建好需要配置,配置可以参考官方文档,非常详细明了。简单的说就是在Sangfor系统中配置这个项目的地址,并监听登录成功返回的关键字,如果包含就是登录成功。

pom文件导入依赖

<dependencies><dependency><groupId>org.apache.cxf</groupId><artifactId>cxf-spring-boot-starter-jaxws</artifactId><version>3.2.5</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- http --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.4</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.41</version></dependency><!-- 热部署模块 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional><!-- 这个需要为 true 热部署才有效 --></dependency><!-- Swagger 2 --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${swagger.version}</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${swagger.version}</version></dependency><dependency><groupId>commons-lang</groupId><artifactId>commons-lang</artifactId><version>${commons.lang.version}</version></dependency></dependencies>

application.yml添加配置

spring:freemarker:suffix: .ftltemplate-loader-path: classpath:/templates/

HomeController

@Controller
public class HomeController {@RequestMapping(value = {"/index", "", "/"})@ApiOperation(value = "主页", notes = "")public String toLogin(HttpServletRequest request) {Object loginInfo = request.getSession().getAttribute("loginInfo");LoginForm form = (LoginForm) loginInfo;if (form != null && form.getUsername() != null && "test".equals(form.getUsername())) {return "index";}return "mobile";}@RequestMapping(value = {"/exit"})@ApiOperation(value = "退出", notes = "")public String exit(HttpServletRequest request) {request.getSession().setAttribute("loginInfo", null);return "mobile";}}

LoginController

@Api("登录")
@RestController
@RequestMapping("/")
public class LoginController {@PostMapping(value = {"login"})@ApiOperation(value = "登录", notes = "登录")public String login(@RequestBody @ApiParam(name = "loginForm", value = "登录信息") LoginForm loginForm, HttpServletRequest request) {if ("test".equals(loginForm.getUsername())) {loginForm.setCreateDate(new Date().getTime());request.getSession().setAttribute("loginInfo", loginForm);return "success";}return "fail";}}

项目结构截图

遇到问题

1、外网环境部署成功,认证失败。首先要AC系统单点登录原理是配置地址和关键返回字段,进行监听。用系统自带的抓包工具,抓取连接设备IP传输数据,找到登录请求,发现与文档相比有误差。我明监听机制是按着post提交form表单实现的,在修改前端代码后解决此问题。

2、内网部署成功,访问失败。内网环境一定时IP+端口,需要开启端口,不然无法访问。

3、内网部署成功,认证失败。这个地方应该是最坑的地方,不仅需要额外配置,还需要额外的物理连接并进行镜像配置。内网环境中需要将web服务器的数据镜像到核心交换机固定端口,并将端口与AC设备相连。

SangforAC(深信服)Web单点登录相关推荐

  1. Web 单点登录系统

    对于企业内部系统来说,CAS系统是一个应用最广的开源单点登陆实现了,其实现模仿Kerberos的一些概念,例如KDC.TGS等等,都是来自于Kerberos.具体可参见 用CAS原理构建单点登录.互联 ...

  2. 进程冲突造成的深信服ssl ***客户端登录异常问题

    遇到ssl ***有个xp用户登录***之后 立马提示会话已过期,请重新登录,永远不能正常使用. 这个问题我们之前遇到xp弄过,要么用深信服修复工具修复ok .要么是iessl 2.0要去掉 但是现在 ...

  3. Web 单点登录系统 JA-SIG CAS

    JA-SIG CAS(Central Authentication Service)为Web应用系统提供了单点登录服务.它的特性包括:一个开放和具有很好文档支持的协议:一个Java开源服务器组件:提供 ...

  4. 用RSA实现Web单点登录密码的加密传输

    在使用通用权限管理系统(吉日嘎拉)的单点登录功能时,对登录密码使用了RSA加密(非对称加密),有使用这个权限管理系统的可参考下. 前端部分,请引用以下几个js文件: <script type=& ...

  5. 深信服上网行为管理(AC)、安全网关(SG)学习笔记

    深信服上网行为管理的学习笔记,由于AC软件版本更新相关特性可能变动,仅供参考哈.. 权威内容请访问深信服官方社区:https://bbs.sangfor.com.cn/ 目录 默认IP 接口保留地址 ...

  6. 深信服防火墙之安全评估与动态检测技术

    目录 1.风险分析技术 1.1客户需求 1.2 功能介绍 (1)对目标IP进行端口扫描 (2)对目标网站进行弱密码扫描 1.3 配置思路 2.WEB扫描技术 2.1 功能介绍 (1)网站扫描 (2)指 ...

  7. 单点登录SSO:图示和讲解

    目录 概述 示例运行效果动画 跨域Web SSO时序图 代码截图 几个基本概念 涉及的站点和页面 重点理解:单点登录的核心步骤 敢说最准确的单点登录图示,因为: 我严格对照所画时序图的每个步骤,开发了 ...

  8. 基于SAML的单点登录介绍

    一.背景知识: SAML即安全断言标记语言,英文全称是Security Assertion Markup Language.它是一个基于XML的标准,用于在不同的安全域(security domain ...

  9. Java单点登录在校园身份管理系统中的实现

    java单点登录在校园身份管理系统中的实现 摘要: 一个学校或企业的内部有很多信息系统,用户登录这些系统时需要进行身份认证.传统的认证机制是基于用户名和密码的,每一个系统都建立有自己的用户信息数据库, ...

最新文章

  1. 系统如何安装到租的服务器,租用服务器后,检查及环境配置步骤
  2. CF183D T-shirt
  3. 华中科大提出EAT-NAS方法:提升大规模神经模型搜索速度
  4. 如何在企业内部实现云信私有化
  5. Hibernate Query Language(HQL)。
  6. 反思浏览器可以postman调试不通:直接从浏览器复制的参数有空格,查询为空
  7. 华为电视鸿蒙系统好用吗,【图片】华为鸿蒙系统的厉害之处在于 你可能非用不可 !【手机吧】_百度贴吧...
  8. 线下实战—6月25号(深圳)
  9. 代码主题darcula_Pycharm最舒服的主题风格
  10. Missing artifact com.sun tools.jar 1.5.0 system 解决方法
  11. 创建maven的web项目,并用jetty调试
  12. 立创EDA学习笔记(3)——创建元件封装
  13. 某城郊 110KV 降压变电站监控系统设计简介
  14. python数据导入spss_spss-数据抽取-拆分与合并
  15. android 盒子dns设置,电视盒修改DNS,让你的上网速度更快!
  16. 域外计算机无法连接远程桌面,如何开启域内计算机的远程桌面连接?
  17. python--修改证件照的大小
  18. helm chart 快速入门
  19. android电脑局域网传输方案,通过WiFi文件传输在Android和PC之间传输文件 | MOS86
  20. 我的工程师爸爸 - 音频应用DIY系列之三:汤姆猫

热门文章

  1. 篇1:如何为FPGA选择合适的电源管理方案
  2. 查看思科交换机出厂时间
  3. Java8新特性之Stream流式编程
  4. Linux 中断管理之ARM GIC V3 初始化
  5. Window10连接L2TP相关网络问题汇总
  6. key组合按键,长短按键,连续按键 识别方案
  7. 幂乘法求最大特征值和特征向量
  8. 如何让计算机停止打印,电脑打印提示print Splooer停止无法使用怎么办
  9. 【python】pythonPTA编程练习2
  10. Python在Excel单元格中写入公式