jsp通过token实现单点登录

<%@page import="net.sf.json.JSONObject"%>
<%@ page language="java" import="java.util.*,java.text.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.io.*" %>
<%@page import="java.net.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<%
String ticket = transport("http://10.33.216.159:8600/generator/ticket/","username=embed_bomc&password=bomc2018&service=http://10.33.216.160:8601/");
response.sendRedirect("http://10.33.216.160:8601/cs/monitor/?ticket="+ticket);
%>
<%!
public String transport(String url, String message) {
	StringBuffer sb = new StringBuffer();
	String ticket = "";
	try {
		URL urls = new URL(url);
		HttpURLConnection uc = (HttpURLConnection) urls.openConnection();
		uc.setRequestMethod("POST");
		uc.setRequestProperty("content-type","application/x-www-form-urlencoded");
		uc.setRequestProperty("charset", "UTF-8");
		uc.setDoOutput(true);
		uc.setDoInput(true);
		uc.setReadTimeout(10000);
		uc.setConnectTimeout(10000);
		OutputStream os = uc.getOutputStream();
		DataOutputStream dos = new DataOutputStream(os);
		dos.write(message.getBytes("utf-8"));
		dos.flush();
		os.close();
		BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(), "utf-8"));
		String readLine = "";
		while ((readLine = in.readLine()) != null) {
			sb.append(readLine);
		}
		in.close();
		JSONObject json = JSONObject.fromObject(sb.toString());
		JSONObject data = JSONObject.fromObject(json.getString("data"));
		ticket = data.get("ticket").toString();
		System.out.println("ticket="+ticket);
	} catch (Exception e) {
		e.printStackTrace();
	}
	return ticket;
}
%>
</head>
</html>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
软件及安装说明 <br><br> 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。系统分为四个层次,即表示层(Presentation Layer)、域模型层(Domain Model Layer)、 业务层(bussiness Layer)和持久层(Persistence Layer),使用Spring框架整合Struts和 Hibernate,用Spring的“控制反转IOC”, 或者“setter依赖注入”来操作这些对象,这些对象在一个外部的XML文件中被引用。 <br> 表示层主要负责前台Jsp页面的表示,管理用户的请求;<br> 域模型层由实际需求中的业务对象组成,既常说的BO(Business Object);<br> 业务层是Web应用的中间部分,使业务逻辑和数据库持久操作解耦,使代码更容易维护,主要处理应用程序的业务逻辑和业务验证,管理事务,预留和其它层交互的接口,管理业务层对象之间的依赖,增加在表现层和持久层之间的灵活性,使它们互不直接通讯,管理从业务逻辑到持久层的实现。<br> 持久层用于分离业务逻辑和数据存取,把数据封装在DAO中,负责与数据库进行联络的一些任务都封装在此。 <br> 各个层可以单独开发,互相的耦合度很低,这在开发大项目的过程中尤其有优势,层与层之间通过调用接口完成所需要的逻辑单元应用,一切显得非常清晰简单。 <br> Struts是目前最流行的Web框架,提供对开发MVC系统的底层的很好的支持,采用的主要技术是Servlet、Jsp、和Custom Tag Library技术。使用该框架开发MVC程序变的非常简单,Struts对 MVC层的Model、View、和Controller都提供了对应的实现组件。Struts框架中Controller角色是由一个中心Servlet类和众多Action类合作扮演的,中心Servlet类为控制器提供中心控制点来初步处理所有的用户请求,并选择一个Action类处理具体业务逻辑。<br> Struts负责管理用户的请求,做出响应,提供控制器,委派调用业务逻辑,处理异常,UI 验证等,Struts用来作表示层部分,起控制和显示作用; 本系统使用 Spring 的DelegatingRequestProcessor 覆盖 Struts 的 RequestProcessor,将 Struts 动作整合到 Spring 框架中。 <br> Spring框架是轻量级组件部署和运行的容器,可以很好的支持AOP(面向切面编程)的开发模式,Spring能有效地组织中间层对象,通过Bean容器为业务对象、DAO对象和资源对象提供了IOC类型的装配能力,将Struts和Hibernate集成起来,使用Spring构建的应用程序易于单元测试。Spring为数据存取提供了一个一致的框架,包括JDBC和O/R Mapping产品。<br> Spring用来作业务层部分,负责处理应用程序的业务逻辑和业务校验;管理事务;提供与其它层相互作用的接口;管理业务层级别的对象的依赖等,用来作业务层部分和数据库操作的事务处理,需要在配置文件里配置好; <br> Hibernate是一个优秀的开放源代码的对象关系映射(O/R Mapping)框架,它对JDBC进行了非常轻量级的对象封装,提供了强大高性能的对象到关系数据库的持久化服务,使程序员可使用面向对象思维来操纵数据库。<br> Hibernate用来作持久层部分和域模型层部分,负责存储、更新、删除、查询数据库记录等,用来作DAO处理,本系统使用Spring整合Hibernate,spring为Hibernate的session提供了有效的容易和安全的控制,Spring控制Hibernate的SessionFactories,JDBC datasources及其它相关的资源,进行完整的事务管理和异常的包装,在此用了Spring的事物模板(TransactionTemplate)实现,可分离数据访问和事物处理,提高业务对象的可复用性,采用getHibernateTemplate()方法来操作hsql进行数据增删改等操作。 <br> <br> 本系统是一个先进的博客系统,能基本完整的实现博客的功能,主要有以下功能:<br> 1。用户注册登录功能。用户可以在网站上注册一个帐户,建立自己的博客,用户可以登录到自己的管理界面,管理文章、评论、相片、个人信息等。<br> 2。博客首页功能。可显示火炬博客系统的全面信息,如最新文章、热门文章等。<br> 3。我的首页功能。可显示个人博客的全面信息,如最新文章、最新评论、作者相片、日历等。<br> 4。博客管理功能。用户可以管理自己的博客,包括文章管理、评论管理、相片管理、档案管理、类别管理、个人资料管理、注册信息管理等。<br> 5。写文章功能。本系统采用流行的FCKEditor编辑器,提供强大的编辑和排版功能,文章可实现优美的显示效果。<br> 6。评论功能。访问者可对文章发表评论。<br> 7。留言功能。访问者可给每个博客留言。<br> 8、搜索功能。可按不同项目进行搜索。<br> 9。Tag功能。文章可产生多个相关Tag,可按不同Tag进行搜索。<br> 10。RSS功能。本系统采用先进的RSS2.0技术,实现RSS功能,便于浏览。<br> 11。相册功能。可浏览博客相片。<br> 12。个人档案功能。可浏览博客个人资料。 <br> 13。找回密码功能。可通过问题回答找回密码。。<br> 14。聊天功能。访问者和用户可在线聊天,可以群聊,也可以私聊,反应快速,功能强大。 <br> 15。博客统计功能。可统计博客系统的基本信息。<br> 16。访问人数统计功能。可统计网站在线访问人数。<br> 17。分页功能。本系统具备完善的分页功能。<br> 18。连接池功能。本系统采用连接池技术,解决了数据库瓶颈,大大提高了运行速度。<br> 19。注销功能。可安全退出系统。<br> 20。防重复提交功能。本系统还采用Struts的Token机制和JavaScript技术实现绝对安全的防重复提交功能。 <br> 21。文章管理。可修改、删除文章。<br> 22。评论管理。可回复、删除评论。<br> 23。相片管理。可上传相片,设置主肖像,删除相片。<br> 24。档案管理。可按月建立档案,浏览档案。<br> 25 。类别管理。可建立、修改、删除类别。<br> 26。个人资料管理。可输入修改个人资料。<br> 27。 注册信息管理。可输入修改注册信息,包括修改密码。<br> 28。 错误和异常管理。可处理错误情况,提示错误信息。<br><br> MYSQL安装<br> 将安装包解压缩,运行tdbmysql.bat,然后用torchblogdb-setup.sql建表,<br>将数据导入 MYSQL数据库。<br>将torchblog目录COPY至Tomcat/webapps/下,即Tomcat/webapps/torchblog<br>修改Tomcat/webapps/torchblog/WEB-INF/classes/init.properties文件<br>主要修改<br>datasource.url=jdbc:mysql://127.0.0.1/torchblog?useUnicode=true&characterEncoding=gb2312<br>datasource.username=root<br>datasource.password=<br>这三项,根据你的实际情况修改,但注意useUnicode=true&characterEncoding=gb2312不能修改。<br><br> 红梅居士
单点登录(Single Sign-On,简称SSO)是一种身份认证机制,允许用户使用一组凭据(如用户名和密码)登录到多个相关应用程序或服务,而不需要在每个应用程序中单独进行身份验证。使用token实现单点登录是一种常见的方式。 下面是一个基本的流程来使用token实现单点登录: 1. 用户访问SSO系统,并提供其凭据进行身份验证。 2. SSO系统验证用户的凭据,并生成一个唯一的令牌(token)。 3. SSO系统将令牌返回给用户。 4. 用户在访问其他相关应用程序时,将令牌作为身份验证凭据发送给应用程序。 5. 相关应用程序接收到令牌后,将其发送给SSO系统进行验证。 6. SSO系统验证令牌的有效性,并确认用户的身份。 7. SSO系统向应用程序返回用户的身份信息,应用程序根据此信息决定是否授权用户访问。 在实现过程中,可以使用一些常见的技术和协议,例如JSON Web Token(JWT)或Security Assertion Markup Language(SAML)。这些技术和协议提供了对令牌生成、验证和传输的标准化解决方案。 需要注意的是,使用token实现单点登录需要确保令牌的安全性,以防止被未经授权的用户使用或篡改。常见的安全措施包括使用加密算法对令牌进行签名和验证,以及使用HTTPS协议进行令牌的传输。 以上是一个简单的介绍,实际的单点登录实现可能涉及更多细节和复杂性,具体的实现方式可以根据具体需求和技术栈进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值