BPMX3模拟登录
实现功能只需要输入一个帐号即可登录系统。
需要实现上面的功能需要:
1.编辑imitate.jsp页面
<%@page import="com.hotent.core.util.ContextUtil"%>
<%@page import="com.hotent.platform.model.system.SysUser"%>
<%@page import="org.springframework.security.core.Authentication,
org.springframework.security.core.context.SecurityContext,
com.hotent.core.util.AppUtil,
org.springframework.security.authentication.AuthenticationManager,
org.springframework.security.core.context.SecurityContextHolder,
org.springframework.security.web.authentication.WebAuthenticationDetails,
org.springframework.security.authentication.UsernamePasswordAuthenticationToken"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
AuthenticationManager authenticationManager=(AuthenticationManager)AppUtil.getBean("authenticationManager");
String account=request.getParameter("account"); UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(account, "");
authRequest.setDetails(new WebAuthenticationDetails(request));
SecurityContext securityContext = SecurityContextHolder.getContext();
Authentication auth = authenticationManager.authenticate(authRequest);
securityContext.setAuthentication(auth); SysUser user=ContextUtil.getCurrentUser(); out.print(user.getFullname());
%>
调用api验证用户,这里只输入了帐号,密码为空,但是数据库中的密码是使用sha256算法加密的密码,这个时候我们需要实现一个PasswordEncoder。
2.实现PasswordEncoder,这个encoder 始终返回为true,具体实现由用户自己实现。
package com.hotent.platform.service.system.impl;
import org.springframework.security.authentication.encoding.PasswordEncoder;
public class EmptyPasswordEncoder implements PasswordEncoder {
@Override
public String encodePassword(String rawPass, Object salt) {
System.out.println(rawPass);
return rawPass;
}
/**
* encPass:数据库密码
* rawPass:原密码
*/
@Override
public boolean isPasswordValid(String encPass, String rawPass, Object salt) {
return true;
}
}
3.配置app-security.xml.
<security:authentication-manager alias="authenticationManager" >
<security:authentication-provider user-service-ref="sysUserDao">
<security:password-encoder ref="passwordEncoder"/>
</security:authentication-provider>
</security:authentication-manager> <bean id="passwordEncoder" class="com.hotent.platform.service.system.impl.EmptyPasswordEncoder"></bean>
4.配置imitate.jsp匿名访问。
<property name="anonymousUrls">
<set>
<value>/mobileLogin.jsp</value>
<value>/mobileLogin.ht</value>
<value>/platform/mobile/lang/changLang.ht</value>
<value>/loginRedirect.ht</value>
<value>/login.jsp</value>
<value>/imitate.jsp</value>
<value>/login.ht</value>
<value>/bpmImage</value>
<value>/platform/bpm/processRun/processImage.ht</value>
<value>/platform/bpm/processRun/getFlowStatusByInstanceId.ht</value>
<value>/platform/bpm/processRun/taskUser.ht</value>
<value>/platform/bpm/taskOpinion/list.ht</value>
<!-- flex附件上传的 -->
<value>/platform/bpm/bpmDefinition/getXmlImport.ht</value>
<value>/mobile/system/mobileLogin.ht</value>
<value>/mobile/system/mobileLogout.ht</value>
</set>
</property>
BPMX3模拟登录的更多相关文章
- PHP cURL 使用cookie 模拟登录
cURL是什么 cURL: http://php.net/manual/zh/book.curl.php PHP 支持 Daniel Stenberg 创建的 libcurl 库,能够连接通讯各种服务 ...
- 【Python数据分析】Python模拟登录(一) requests.Session应用
最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块. 注:本文仅为交流学 ...
- Android利用HttpURLConnection实现模拟登录
最近在做一个APP,需要模拟登录教务处,之前曾经用HttpClient做过,点这里,但是发现最新的Android SDK已经不支持Httpclient了,所以只好在琢磨一下HttpURLConnect ...
- Python requests模拟登录
Python requests模拟登录 #!/usr/bin/env python # encoding: UTF-8 import json import requests # 跟urllib,ur ...
- php中CURL实现模拟登录并采集数据
在php中采集我们用的是简单的采集方式(例如file_get_contents)就无法做到了,但是如果想模拟登录用户并采集利用它就没办法了,我们可利用CURL函数来实现模拟登录并采集数据 这里要说一些 ...
- .NET微信模拟登录及{base_resp:{ret:-4,err_msg:nvalid referrer}}的解决办法
12年的时候写了些关于微信开发的内容,当时看好这个东西,可惜当时腾讯开放的权限太少,之后的一年多时间没有太关注了. 现在又要重新开始微信开发的阵容了,微信只是个入口,微网站才是趋势. 我是个水货,所以 ...
- curl模拟登录新浪微博
这几天要做个获取新浪微博@我的信息, 又不用第三方登录,所以只能通过模拟登录来获取信息,研究的一下发现直接模拟登录微博比较困难,验证的算法比较复杂,于是绕道通过登录新浪通行证后来获取cookie 来 ...
- curl 模拟登录微信公众平台带验证码
这段时间一直写个项目, 从切图到前端到后台都要搞定,真tm累. 今天下午手残,不停用错误的密码去模拟登录微信公众平台,结果后来出现验证码,瞬间悲剧(菜鸟从来没搞过带验证码的). 研究了一下,发现其实很 ...
- .net 模拟登录Post提交
最近在做一个项目,要求集成到第三方系统中,由于先前没有做过类似的活,所以折腾了几天,蹭着有闲情的时候记录一下. 以下实例,都是我用Asp.net语言进行开发的,关于HTML元素的获取,使用的是Goog ...
随机推荐
- 关于line box,inline box,line-height,vertical-align之间的关系
1.content area 围绕着文字的一种box,高度由font-size和font-family决定.在chrome控制器里,你用鼠标志向某个内敛元素,显示的高度值. 2.inline box的 ...
- MQ使用几个命令
一.MQ常见基本指令: MQ现在使用的比较常见,但是在测试过程中,使用命令行直接查询,有时候事半功倍. activemq-admin stop activemq-admin list activemq ...
- php 上传文件。$_FILES
<form name="article" method="post" enctype="multipart/form-data" ac ...
- ubuntu 下解决安装包依赖问题
我们用banshee软件安装豆瓣插件来做个示例: 1.首先在Ubuntu Software Center内搜索banshee播放器 因为我之前已经安装好了,可以看到如下界面,你可以在点击该软件看到in ...
- iOS - Swift NSSize 尺寸
前言 结构体,这个结构体用来表示事物的宽度和高度. public typealias NSSize = CGSize public struct CGSize { public var width: ...
- Linux_常用命令_02
1. 配置网络参数: (1).root登录 --> setup命令 进入到 "text mode setup utiliy" (2).运行命令"/etc/rc.d/ ...
- JS事件中的对象
在触发任何事件时都会产生一个对象.如:DOM事件,window事件等,都会产生一个对象,该对象就是当前元素的事件对象. DOM事件对象 <body> <input type=&quo ...
- jsonp实现原理详细介绍
主要是浏览器的同源同域(协议相同,域名相同及端口相同)策略需要使用跨域获取数据,故需要jsonp跨域获取数据.重点:img的src,link的href及script的src不遵循浏览器的同源同域策略, ...
- Ubuntu 12.04下PostgreSQL-9.1安装与配置详解(在线安装)
说明: 我是用root用户在终端登陆的,如果是非root用户,那在命令前需要加上"sudo",你懂的... 第一步:在Ubuntu下安装Postgresql ...
- hibernate mysql写入中文乱码 解决
启动hibernate项目,自动创建表,插入数据之后发现写入表里的数据里的中文是乱码.按如下方法解决了: 修改数据库的字符集为UTF-8,这个可以通过mysql的客户端软件里右键要修改的数据库的属性更 ...