当前位置:  编程技术>综合
本页文章导读:
    ▪Project.net Config CAS SSO      一、环境 Tomcat6.0 Project.net9.2 CAS3.5 二、配置CAS 参考我的另一篇文章:配置CAS 三、Configuring CAS SSO for Project.net 1、打开文件\webapps\pnet\WEB-INF\web.xml,增加 <!-- CAS --> <filter> <filt.........
    ▪sitemesh 入门demo       看了n天项目了,没啥收获, 项目组里面用到了sitemesh,以前也没接触过,就无聊看了一下。 在此总结一下,给需要的人。 需要有配置3个地方。   web.xml        decorators.xml           sitemes.........
    ▪为线程执行设置timeout      package com.test.threads; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import java.util.co.........

[1]Project.net Config CAS SSO
    来源:    发布时间: 2013-11-03
一、环境
Tomcat6.0
Project.net9.2
CAS3.5
二、配置CAS
参考我的另一篇文章:配置CAS
三、Configuring CAS SSO for Project.net
1、打开文件\webapps\pnet\WEB-INF\web.xml,增加
<!-- CAS -->
		<filter>
		        <filter-name>CAS Authentication Filter</filter-name>
		        <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
		        <init-param>
		                <param-name>casServerLoginUrl</param-name>
		                <param-value>https://demo.wuyunmin.com:8444/cas/login</param-value>
		        </init-param>
		        <init-param>
		                <param-name>serverName</param-name>
		                <param-value>http://demo.wuyunmin.com:9090</param-value>
		        </init-param>
		</filter>
		<filter>
		        <filter-name>CAS Validation Filter</filter-name>
		        <filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>
		        <init-param>
		                <param-name>casServerUrlPrefix</param-name>
		                <param-value>https://demo.wuyunmin.com:8444/cas</param-value>
		        </init-param>
		        <init-param>
		                <param-name>serverName</param-name>
		                <param-value>http://demo.wuyunmin.com:9090</param-value>
		        </init-param>
		</filter>
		<filter>
		        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
		        <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
		</filter>
		
	   <filter-mapping>
	        <filter-name>CAS Authentication Filter</filter-name>
	    	<url-pattern>/*</url-pattern>
		</filter-mapping>
		<filter-mapping>
	        <filter-name>CAS Validation Filter</filter-name>
	    	<url-pattern>/*</url-pattern>
		</filter-mapping>
		<filter-mapping>
	        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
	    	<url-pattern>/*</url-pattern>
		</filter-mapping>
		<!-- /CAS -->

2、打开文件\webapps\pnet\sso\SSOLogin.jsp,修改文件第46行,如下:
boolean ssoEnabled = PropertyProvider.getBoolean("prm.global.login.sso.allowSSO");
	if (!ssoEnabled) {
		//SSO is disabled
		pageContext.forward("/Login.jsp");
		return;
	}
	
	String remoteUser = request.getRemoteUser();//被修改的行
	if ((remoteUser == null)||(remoteUser.equals(""))) {
		//no header. this is system error.
		pageContext.forward("/sso/NoHeader.jsp");
		return;
	}

3、打开文件\webapps\pnet\sso\LoggedOut.jsp,在文件头上增加:
<%
response.sendRedirect("https://demo.wuyunmin.com:8444/cas/logout");
%>

4、更新数据库
update pn_propertity set value=1 where propertiy='prm.global.login.sso.allowSSO';
5、从cas项目目录下复制jar文件:\webapps\cas\WEB-INF\lib\cas-client-core-3.2.1.jar到Project.net项目下的lib文件夹中。

已有 0 人发表留言,猛击->>这里<<-参与讨论


ITeye推荐
  • —软件人才免语言低担保 赴美带薪读研!—




    
[2]sitemesh 入门demo
    来源:    发布时间: 2013-11-03

看了n天项目了,没啥收获,

项目组里面用到了sitemesh,以前也没接触过,就无聊看了一下。

在此总结一下,给需要的人。

需要有配置3个地方。

 

web.xml        decorators.xml           sitemesh.xml

 

 

web.xml的配置如下:

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>test_sitemesh</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
 <filter>
        <filter-name>sitemesh</filter-name>
        <filter-class>com.opensymphony.sitemesh.webapp.SiteMeshFilter</filter-class>
    </filter>
  
  <filter-mapping>
  	<filter-name>sitemesh</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  
</web-app>

 

decorators.xml路径在web-inf下面,配置如下:

 

<?xml version="1.0" encoding="utf-8"?>  
<decorators defaultdir="/decorators">  
    <!-- 此处用来定义不需要过滤的页面 -->  
    <excludes>  
    </excludes>  
  
 <!-- 用来定义装饰器要过滤的页面 ,style.jsp为装饰页面,/*表示装饰所有页面-->  
    <decorator name="main" page="style.jsp">  
        <pattern>/*</pattern>  
    </decorator>  
</decorators>  

 

sitemesh.xml的路径也在web-inf下面,配置如下:

 

<sitemesh>
    <property name="decorators-file" value="/WEB-INF/decorators.xml"/>
    <excludes file="${decorators-file}"/>

    <page-parsers>
        <parser content-type="text/html" />
    </page-parsers>

    <decorator-mappers>

        <mapper >
            <param name="property.1" value="meta.decorator"/>
            <param name="property.2" value="decorator"/>
        </mapper>

        <mapper >
        </mapper>

        <mapper >
            <param name="match.MSIE" value="ie"/>
            <param name="match.Mozilla [" value="ns"/>
            <param name="match.Opera" value="opera"/>
            <param name="match.Lynx" value="lynx"/>
        </mapper>

        <mapper >
            <param name="decorator" value="printable"/>
            <param name="parameter.name" value="printable"/>
            <param name="parameter.value" value="true"/>
        </mapper>

        <mapper >
            <param name="decorator" value="robot"/>
        </mapper>

        <mapper >
            <param name="decorator.parameter" value="decorator"/>
            <param name="parameter.name" value="confirm"/>
            <param name="parameter.value" value="true"/>
        </mapper>

        <mapper >
        </mapper>

        <mapper >
            <param name="config" value="${decorators-file}"/>
        </mapper>

    </decorator-mappers>

</sitemesh>

 

 

配置文件如上,我看在项目中在web.xml里面是写的sitemeshFilter,但是在网上都很多是pagefilter

有点疑惑,准备下周去问问老大。

 

然后是装饰页面,它是为了装饰其它页面而存在,style.jsp,

它是放在webRoot/decorators目录下,这个路径是在上面decorators.xml里面定义的。

这里只是测试,所以内容很简单,如下:

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
       <title><decorator:title />
       </title>
    <body>
       <p>head decorator...</p> <!-- 头部 -->
       <decorator:body />
       <p>foot decorator...</p><!-- 脚部,可以写一些copyright之类的东西 -->
    </body>
</html>
 

然后就直接运行,只要在webRoot下面有页面,访问即可看到效果。

 

 

 



已有 0 人发表留言,猛击->>这里<<-参与讨论


ITeye推荐
  • —软件人才免语言低担保 赴美带薪读研!—




    
[3]为线程执行设置timeout
    来源:    发布时间: 2013-11-03
package com.test.threads;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

/**
 * @author Hawkins
 *
 *
 *在指定时间内执行某个task,超时则退出执行。
 */
public class TimedCall {
	public static void main(String[] args) throws InterruptedException,
			ExecutionException, TimeoutException {
		long timeout = 1000;// 任务必须在设定时间内完成,否则任务将被强制关闭
		long timeNeed = 2000;// 任务完成需要的时长。
		TimeUnit timeUnit = TimeUnit.MILLISECONDS;// 时间单位
		ExecutorService executor = Executors.newSingleThreadExecutor();// 高级并发API

		Runnable task = new MyThread(timeNeed, timeUnit);

		while (!timedCall(executor, task, timeout, timeUnit))
			;// 在某些场景下,需要不断尝试执行任务,直到能够在限定时间内执行完毕。

	}

	private static boolean timedCall(ExecutorService executor, Runnable c,
			long timeout, TimeUnit timeUnit) throws InterruptedException,
			ExecutionException {
		// FutureTask<?> task = new FutureTask<Object>(c, null);
		// executor.execute(task);
		//		
		// task.get(timeout, timeUnit);
		Future<?> future = executor.submit(c);
		try {
			future.get(timeout, timeUnit);
			return true;
		} catch (TimeoutException e) {
			future.cancel(true);// 参数设为true,向执行线程发送中断通知。否则,允许已经启动的线程继续执行直到完成任务。
			System.err.println("任务执行超时,强制退出");
			return false;
		}
	}
}

class MyThread implements Runnable {
	long timeLong = 0;// how long thread running will cost
	TimeUnit timeUnit;

	public MyThread() {
	}

	public MyThread(long milli, TimeUnit timeUnit) {
		this.timeLong = milli;
		this.timeUnit = timeUnit;
	}

	@Override
	public void run() {
		System.out.println("---------" + Thread.currentThread().getName()
				+ "开始执行,时长[" + timeLong + "]------");
		try {
			Thread.sleep(timeLong);
		} catch (InterruptedException e) {
			System.err.println("线程中断,退出");
			return;// 必须响应中断,否则无法退出线程。在退出之前你可能还需做一些资源回收等等。
		}
		System.out.println("---------" + Thread.currentThread().getName()
				+ "执行完毕,时长[" + timeLong + "]------");

	}
}


已有 0 人发表留言,猛击->>这里<<-参与讨论


ITeye推荐
  • —软件人才免语言低担保 赴美带薪读研!—




    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪简单选择排序算法    ▪国外 Android资源大集合 和个人学习android收藏    ▪.NET MVC 给loading数据加 ajax 等待loading效果
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程 iis7站长之家
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3