1.Smarty编写用户登录 怎样用cookie?
查看文章 编写你自己的单点登录(SSO)服务 2 2009/07/17 上午 10:49 编写你自己的单点登录(SSO)服务 23.2 WEB-SSO代码讲解 3.2.1身份认证服务代码解析 Web-SSO的源代码可以从网站地址。身份认证的所有服务几乎都由SSOAuth的Servlet来实现了;login.jsp用来显示登录的页面(如果发现用户还没有登录过);failed.html是用来显示登录失败的信息(如果用户的用户名和密码与信息数据库中的不一样)。
SSOAuth的代码如下面的列表显示,结构非常简单,先看看这个Servlet的主体部分:package DesktopSSO; import java.io.*; import java.net.*; import java.text.*; import java.util.*; import java.util.concurrent.*; import javax.servlet.*; import javax.servlet.").forward(request, response); else { String gotoURL = request.getParameter("goto"); String newID = createUID(); SSOIDs.put(newID, username); Cookie wangyu = new Cookie(cookiename, newID); wangyu.setDomain(domainname); wangyu.setMaxAge(60000); wangyu.setValue(newID); wangyu.setPath("/"); response.addCookie(wangyu); System.out.println("login success, goto back url:" + gotoURL); if (gotoURL != null) { PrintWriter out = response.getWriter(); response.sendRedirect(gotoURL); out.close(); } } }handlerFromLogin()这个方法是用来处理来自login.jsp的登录请求。
它的逻辑很简单:将用户输入的用户名和密码与预先设定好的用。
2.帆软单点登录怎么写login.jsp
题主说的是单点登录中的自定义登录吧,自定义html登录页面:命名为login.html并保存在%FR_HOME%\WebReport下,代码如下 :<html> <head> <meta ; charset=UTF-8"><script type="text/javascript" src="ReportServer?op=emb&resource=finereport.js"></script> <script type="text/javascript"> function doSubmit() { var username = FR.cjkEncode(document.getElementById("username").value); //获取输入的用户名 var password = FR.cjkEncode(document.getElementById("password").value); //获取输入的参数 jQuery.ajax({ url:">。
3.我在用java编写单点登录服务端,请教单点登出的思路
你这样入手,给你列出整个简单流程,你自己思考一下:
1)下载,配置 Tomcat。
2)写 JSP 与 Servlet ,调用 MySQL 或其他数据库。
3)在 Tomcat 部署你的应用程序。
4)在浏览器运行你的应用程序。
一个简单的测试系统,主要由两个页面组成就够了:
1)登录页面。
2)登录成功后,显示的主页面。
后台程序,只要写一个就行了:
1)接收登录的用户名密码,去查询数据库。
4.cas有些请求路径不需要单点登录过滤器拦截
业务系统web应用在使用单点登录组件时,有些请求路径不需要单点登录过滤器拦截,比如公共开放的路径,不需要认证都可以自由访问的路径,单点登录过滤器配置的映射路径一般以通配符匹配路径,但要把这些路径单独提取出来,让过滤器不拦截做单点登录处理,就需要对原有过滤器进行扩展改造,才能实现这个功能。
扩展实现代码如下:public class CASFilter implements Filter { public static enum ResponseType { BREAK, GOON, RETURN } 。public void doFilter( ServletRequest request, ServletResponse response, FilterChain fc){。
CASReceipt receipt = (CASReceipt) session.getAttribute(CAS_FILTER_RECEIPT);if (receipt != null && isReceiptAcceptable(receipt)) { log.trace("CAS_FILTER_RECEIPT attribute was present and acceptable - passing request through filter.."); fc.doFilter(request, response); return; }else{ responeType = beforeDoSSOFilter(request, response); if(ResponseType.RETURN==responeType){ return ; }else if(ResponseType.BREAK==responeType) { fc.doFilter(request, response); return; } //else go on }} //过滤器的前置处理public ResponseType beforeDoSSOFilter(ServletRequest request, ServletResponse response) { return ResponseType.GOON;}}注:主要看原CASFilter 类红字部分扩展代码。扩展实现类BMCASFilterpackage com.sitechasia.sso.bmext;public class BMCASFilter extends CASFilter { private final Log log = LogFactory.getLog(this.getClass()); private static String ssoclient_passedPathSet;//设置不被sso过滤器拦截的请求路径,需要符合url路径通配符,多个路径可以","分割public static final String PASSEDPATHSET_INIT_PARAM="passedPathSet";//web.xml配置文件中的参数@Overridepublic void init(FilterConfig config) throws ServletException { super.init(config); ssoclient_passedPathSet = .getInstance().getProperty(ClientConstants.SSOCLIENT_PASSEDPATHSET)==null?config.getInitParameter(PASSEDPATHSET_INIT_PARAM):.getInstance().getProperty(ClientConstants.SSOCLIENT_PASSEDPATHSET);} @Overridepublic ResponseType beforeDoSSOFilter(ServletRequest request, ServletResponse response) { if (ssoclient_passedPathSet != null) {//路径过滤 HttpServletRequest 登录页面:命名为login.html并保存在%FR_HOME%\WebReport下,代码如下 :
<meta ; charset=UTF-8"> <body> 请登录