??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲a在线视频,天堂精品在线视频,国产乱子伦精品http://www.aygfsteel.com/Noah/category/37207.html<span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri" lang="ZH-CN">不是l典我不?lt;/span>zh-cnMon, 19 Dec 2016 03:35:12 GMTMon, 19 Dec 2016 03:35:12 GMT60Puppet的server端与agent端的通信建立http://www.aygfsteel.com/Noah/articles/432131.html眼镜?/dc:creator>眼镜?/author>Fri, 16 Dec 2016 09:09:00 GMThttp://www.aygfsteel.com/Noah/articles/432131.htmlhttp://www.aygfsteel.com/Noah/comments/432131.htmlhttp://www.aygfsteel.com/Noah/articles/432131.html#Feedback0http://www.aygfsteel.com/Noah/comments/commentRss/432131.htmlhttp://www.aygfsteel.com/Noah/services/trackbacks/432131.htmlq里默认你已l把它安装好了?br />
惌两台(或N?机器怺通信Q先要设|它们之间的Host文g?br />每一台机器分别执行如下命?
sudo vi /etc/hosts
把要怺通信的所有机器的IP ?别名dq来。比如先以server端ؓ?
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.23.10.237 puppet-server.noah.blogjava.net
#上面可能是打开q个文g里默认的Q不用管Q直接在下面加agent的ip可以了,有多加多少?/span>
10.52.27.71 agent001.noah-test.net
10.52.27.72 agent002.noah-test.net
10.52.27.73 agent003.noah-test.net
接下来把上面的都复制Q然后,分别考到其它的机器里面?br />
接下来回到agent端,配置puppet 的配|文Ӟ执行如下命o
sudo vi /etc/puppetlabs/puppet/puppet.conf
在打开的文仉面填写如下信?br />
[main]
#q个certname是上面host里面的名?/span>
certname = agent001.noah-test.net
#server 是puppet的server的地址
server = puppet-server.noah.blogjava.net
environment 
= production
runinterval 
= 1h


然后在agent端,执行如下命oQ向server端申误?br />
sudo /opt/puppetlabs/bin/puppet agent --test
然后Q会出现q样的信?/span>
Info: Creating a new SSL key for agent01.noah-test
Info: Caching certificate for ca
Info: csr_attributes file loading from /etc/puppetlabs/puppet/csr_attributes.yaml
Exiting; no certificate found and waitforcert is disabled

证明Q申h功,{待server端同意。这时可以{到server端,执行如下命o查看如些机器要申误?
sudo /opt/puppetlabs/bin/puppet cert list --all
q里会显C出所有申误的和正在{待审批的agent的certname 的名字。审扚w过的前面有?#8220;+”?br />接下来执行如下命令进行单独审?br /> 
sudo /opt/puppetlabs/bin/puppet cert sign agent001.noah-test.net

也可以直接在sgin 后面?"--all",q行全部审批?br />
审批完成后,再回到agent端,执行同样的命?br />
sudo /opt/puppetlabs/bin/puppet agent --test

如下昄的全是类似如下绿色的信息Q证明它们之间的通信已经建立成功
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for agent001.noah-test.net
Info: Applying configuration version '1481877703'







问题汇总:
cloud@cdt-dev-cafews-yabinx:/etc/puppetlabs/puppet> sudo puppet agent -t
Warning: Setting 'pluginsync' is deprecated.
(at /opt/puppetlabs/puppet/lib/ruby/vendor_ruby/puppet/defaults.rb:1713:in `block in <module:Puppet>')
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: getaddrinfo: Name or service not known
Info: Retrieving pluginfacts
Error: /File[/var/lib/puppet/facts.d]: Failed to generate additional resources using 'eval_generate': getaddrinfo: Name or service not known
Error: /File[/var/lib/puppet/facts.d]: Could not evaluate: Could not retrieve file metadata for puppet:///pluginfacts: getaddrinfo: Name or service not known
Info: Retrieving plugin
Error: /File[/var/lib/puppet/lib]: Failed to generate additional resources using 'eval_generate': getaddrinfo: Name or service not known
Error: /File[/var/lib/puppet/lib]: Could not evaluate: Could not retrieve file metadata for puppet:///plugins: getaddrinfo: Name or service not known
Info: Loading facts
Error: Could not retrieve catalog from remote server: getaddrinfo: Name or service not known
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Error: Could not send report: getaddrinfo: Name or service not known
用的命o不对Q改用这?/span>
sudo /opt/puppetlabs/bin/puppet agent --test



sudo/opt/puppetlabs/bin/puppet agent --test
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: Server hostname 'cdt-dev-cafews-yabinx' did not match server certificate; expected one of cdt-dev-cafews-yabinx.emea1.cis.trcloud, DNS:puppet, DNS:cdt-dev-cafews-yabinx.emea1.cis.trcloud
Info: Retrieving pluginfacts
Error: /File[/opt/puppetlabs/puppet/cache/facts.d]: Failed to generate additional resources using 'eval_generate': Server hostname 'cdt-dev-cafews-yabinx' did not match server certificate; expected one of cdt-dev-cafews-yabinx.emea1.cis.trcloud, DNS:puppet, DNS:cdt-dev-cafews-yabinx.emea1.cis.trcloud
Error: /File[/opt/puppetlabs/puppet/cache/facts.d]: Could not evaluate: Could not retrieve file metadata for puppet:///pluginfacts: Server hostname 'cdt-dev-cafews-yabinx' did not match server certificate; expected one of cdt-dev-cafews-yabinx.emea1.cis.trcloud, DNS:puppet, DNS:cdt-dev-cafews-yabinx.emea1.cis.trcloud
Info: Retrieving plugin
Error: /File[/opt/puppetlabs/puppet/cache/lib]: Failed to generate additional resources using 'eval_generate': Server hostname 'cdt-dev-cafews-yabinx' did not match server certificate; expected one of cdt-dev-cafews-yabinx.emea1.cis.trcloud, DNS:puppet, DNS:cdt-dev-cafews-yabinx.emea1.cis.trcloud
Error: /File[/opt/puppetlabs/puppet/cache/lib]: Could not evaluate: Could not retrieve file metadata for puppet:///plugins: Server hostname 'cdt-dev-cafews-yabinx' did not match server certificate; expected one of cdt-dev-cafews-yabinx.emea1.cis.trcloud, DNS:puppet, DNS:cdt-dev-cafews-yabinx.emea1.cis.trcloud
Error: Could not retrieve catalog from remote server: Server hostname 'cdt-dev-cafews-yabinx' did not match server certificate; expected one of cdt-dev-cafews-yabinx.emea1.cis.trcloud, DNS:puppet, DNS:cdt-dev-cafews-yabinx.emea1.cis.trcloud
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Error: Could not send report: Server hostname 'cdt-dev-cafews-yabinx' did not match server certificate; expected one of cdt-dev-cafews-yabinx.emea1.cis.trcloud, DNS:puppet, DNS:cdt-dev-cafews-yabinx.emea1.cis.trcloud
其实它已l告诉你了,改一?etc/hosts可以了Q改成下面的其中一?/span>
expected one of cdt-dev-cafews-yabinx.emea1.cis.trcloud, DNS:puppet, DNS:cdt-dev-cafews-yabinx.emea1.cis.trcloud




sudo /opt/puppetlabs/bin/puppet agent --test
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=cdt-dev-cafews-yabinx2.emea1.cis.trcloud]
Info: Retrieving pluginfacts
Error: /File[/opt/puppetlabs/puppet/cache/facts.d]: Failed to generate additional resources using 'eval_generate': SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=cdt-dev-cafews-yabinx2.emea1.cis.trcloud]
Error: /File[/opt/puppetlabs/puppet/cache/facts.d]: Could not evaluate: Could not retrieve file metadata for puppet:///pluginfacts: SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=cdt-dev-cafews-yabinx2.emea1.cis.trcloud]
Info: Retrieving plugin
Error: /File[/opt/puppetlabs/puppet/cache/lib]: Failed to generate additional resources using 'eval_generate': SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=cdt-dev-cafews-yabinx2.emea1.cis.trcloud]
Error: /File[/opt/puppetlabs/puppet/cache/lib]: Could not evaluate: Could not retrieve file metadata for puppet:///plugins: SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=cdt-dev-cafews-yabinx2.emea1.cis.trcloud]
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=cdt-dev-cafews-yabinx2.emea1.cis.trcloud]
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Error: Could not send report: SSL_connect returned=1 errno=0 state=error: certificate verify failed: [unable to get local issuer certificate for /CN=cdt-dev-cafews-yabinx2.emea1.cis.trcloud]
一般这U情况就是由于某U原因没有认证没有成功,但它又不会重新认证了Q所以就报这个错误,解决办法是到q个目录?etc/puppetlabs/puppetQ把生成的ssl文g夹给删除Q让它重新生成一ơkey。如果生成一ơ还没有成功的话Q你要看一下是不是其它地方的问题,然后Q要重新重复上面的步骤,重新生成密钥?/span>



]]>
Puppet的安装与配置http://www.aygfsteel.com/Noah/articles/432127.html眼镜?/dc:creator>眼镜?/author>Thu, 15 Dec 2016 09:04:00 GMThttp://www.aygfsteel.com/Noah/articles/432127.htmlhttp://www.aygfsteel.com/Noah/comments/432127.htmlhttp://www.aygfsteel.com/Noah/articles/432127.html#Feedback0http://www.aygfsteel.com/Noah/comments/commentRss/432127.htmlhttp://www.aygfsteel.com/Noah/services/trackbacks/432127.html先确定一下自qpȝ版本Q可以通过执行下面的命令查看:
cat /etc/redhat-release
如果是Enterprise Linux 7执行这?br />
sudo rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm
Enterprise Linux 6
sudo rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm
Ubuntu 16.04 Xenial Xerus
wget https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
sudo dpkg -i puppetlabs-release-pc1-xenial.deb
sudo apt update
Ubuntu 15.10 Wily Werewolf
wget https://apt.puppetlabs.com/puppetlabs-release-pc1-wily.deb
sudo dpkg -i puppetlabs-release-pc1-wily.deb
sudo apt update
Ubuntu 14.04 Trusty Tahr
wget https://apt.puppetlabs.com/puppetlabs-release-pc1-trusty.deb
sudo dpkg -i puppetlabs-release-pc1-trusty.deb
sudo apt-get update
Ubuntu 12.04 Precise Pangolin
wget https://apt.puppetlabs.com/puppetlabs-release-pc1-precise.deb
sudo dpkg -i puppetlabs-release-pc1-precise.deb
sudo apt-get update
Debian 8 Jessie
wget https://apt.puppetlabs.com/puppetlabs-release-pc1-jessie.deb
sudo dpkg -i puppetlabs-release-pc1-jessie.deb
sudo apt-get update
Debian 7 Wheezy
wget https://apt.puppetlabs.com/puppetlabs-release-pc1-wheezy.deb
sudo dpkg -i puppetlabs-release-pc1-wheezy.deb
sudo apt-get update

如果遇到q个错误Q应该是你的rpm没有讄代理Q请看文章结N误汇?br />curl: (7) couldn't connect to host

接下来用YUM安装
sudo yum install puppetserver
?br />
apt-get install puppetserver

遇到q个错误是YUM没有讄代理Q文章结N题汇?
28, 'connect() timed out!'

接下来就可以正常启动?br />
sudo service puppetserver start

可以通过如下命o查看是否启动成功
sudo service puppetserver status

默认它会分配2G内存Q需要调整的话,可以在这?br />
/etc/sysconfig/puppetserver -- RedHeat
/etc/default/puppetserver  -- Debian


接下来在另外一台器上安装agent
用相同的Ҏ(gu)先下载资源包Qsudo rpm xxxx,{??br />然后Q安装agent
sudo yum install puppet
通过如下命o启动agent
sudo service puppet start
通过如下命o查看是否启动成功
service puppet status




https://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm
Retrieving https://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm
curl: (7) couldn't connect to host
error: skipping https://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm - transfer failed
sudo rpm -Uvh --httpproxy http://webproxy.lon.corp.services --httpport 80 https://yum.puppetlabs.com/puppetlabs-release-pc1-el-6.noarch.rpm


在安装过E中Q如果Yum不能下蝲的话Q可能没有设|代理,
执行 sudo vi /etc/yum.conf 然后加上代理
proxy=http://xxxxxxxxxx:80

puppet 默认使用8140Q查看端口占用情况
sudo netstat -nlatp | grep 8140





]]>
Mockito的高U用?/title><link>http://www.aygfsteel.com/Noah/articles/431236.html</link><dc:creator>眼镜?/dc:creator><author>眼镜?/author><pubDate>Mon, 18 Jul 2016 09:18:00 GMT</pubDate><guid>http://www.aygfsteel.com/Noah/articles/431236.html</guid><wfw:comment>http://www.aygfsteel.com/Noah/comments/431236.html</wfw:comment><comments>http://www.aygfsteel.com/Noah/articles/431236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Noah/comments/commentRss/431236.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Noah/services/trackbacks/431236.html</trackback:ping><description><![CDATA[之前写了一关于?a href="http://www.aygfsteel.com/Noah/articles/404846.html" target="_blank">用Mockitol过DAO层直接去试Service?/a>》,不太全面Q这ơ对之前的做了点补充<br />有的时候这个方法的q回值是通过参数q回的。比如类gq样Q?br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000FF; ">public</span> <span style="color: #0000FF; ">void</span> test(Map map){<br />     <span style="color: #008000; ">//</span><span style="color: #008000; ">do something</span><span style="color: #008000; "><br /> </span>    map.put("response","success");<br /> }</div>q个时候需要这样用:<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->when( myMock.someMethod( any( Map.<span style="color: #0000FF; ">class</span> ) ) ).thenAnswer( ( <span style="color: #0000FF; ">new</span> Answer<Void>() {<br />    @Override<br />    <span style="color: #0000FF; ">public</span> Void answer( InvocationOnMock invocation )<br />            <span style="color: #0000FF; ">throws</span> Throwable {<br />        Object[] args = invocation.getArguments();<br />        Map arg1 = (Map)args[0];<br />        arg1.put("response", "failed");<br />        <span style="color: #0000FF; ">return</span> <span style="color: #0000FF; ">null</span>;<br />    }<br />} ) );</div><br /><br />q有一U用法,q回参数值做为函数返回?br /><div>mockito 1.9.5之后Q提供一个方便的Ҏ(gu)来实现这个需要,在这之前可以使用一个匿名函数来q回一个answer来实现?/div><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->when(myMock.myFunction(anyString())).then(returnsFirstArg());</div></div><span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;">其中returnsFirstArg()是org.mockito.AdditionalAnswers中的一个静态方法?/span><br style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;" /><span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;">在这个类中还有其他的一些类似方?/span><br style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;" /><span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;">returnsSecondArg()</span><br style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;" /><div style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;">returnsLastArg()</div><div style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12.8000001907349px; line-height: 19.2000007629395px; background-color: #ffffff;">ReturnsArgumentAt(int position)</div><div></div><img src ="http://www.aygfsteel.com/Noah/aggbug/431236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Noah/" target="_blank">眼镜?/a> 2016-07-18 17:18 <a href="http://www.aygfsteel.com/Noah/articles/431236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JSF学习日志http://www.aygfsteel.com/Noah/articles/420611.html眼镜?/dc:creator>眼镜?/author>Wed, 26 Nov 2014 05:38:00 GMThttp://www.aygfsteel.com/Noah/articles/420611.htmlhttp://www.aygfsteel.com/Noah/comments/420611.htmlhttp://www.aygfsteel.com/Noah/articles/420611.html#Feedback0http://www.aygfsteel.com/Noah/comments/commentRss/420611.htmlhttp://www.aygfsteel.com/Noah/services/trackbacks/420611.html
@Named("bean1") // or @ManagedBean(name="bean1") or 不指定名字,默认Bean的名QsampleBean
@SessionScoped
public class SampleBean {
    public int getLuckyNumber() {  }
    public void setLuckyNumber(int value) {  }
    public String login() {
    if () return "success"; else return "error";
    }
}
面q样写,直接调相应的Ҏ(gu)
<h:commandButton value="press me" action="#{bean1.login}"/>
2.链?br />
<h:link outcome="#{custVM.gotoDetail}" includeViewParams="true" target="_blank">
      <f:param name="scmNo" value="#{warr.project_no}"/>
      <f:param name="custNo" value="#{warr.cust_no}"/>  
      <f:param name="custName" value="#{warr.cust_name}"/>  
      <h:outputText value="#{warr.accrued_amt}">
           <f:convertNumber currencySymbol="$" type="currency" />
      </h:outputText>
</h:link>
在目标页面写下面q个Q这样就可以传过来了
<f:metadata>
     <f:viewParam name="scmNo" value="#{custVM.scmNo}" />
     <f:viewParam name="custNo" value="#{custVM.custNo}" />
     <f:viewParam name="custName" value="#{custVM.custName}" />
</f:metadata>
3.下拉菜单写法Q?br />
private List<SelectItem> monthItems; //它有自己的SelectItem c,用来存键值对?/span>
    
    @PostConstruct
    public void init() {
        Calendar now = Calendar.getInstance();
        date = now.getTime();
        monthItems = new ArrayList<SelectItem>();
        try {
            List<Date> monthList = amoritizateService.getMonthList();
            for(Date month:monthList){
                monthItems.add(new SelectItem(month, DateUtil.format(month, "yyyy - MM")));
            }
        } catch (Exception e) {
            LOG.error("ERROR!",e);
        }
        
    }
面可以直接q样写:
<p:selectOneMenu value="#{amoritizateVM.date}" converter="monthItemConverter" style="width:145px">
      <f:selectItems value="#{amoritizateVM.monthItems}"></f:selectItems>
</p:selectOneMenu>
q里面用C另外一个知识点Converter,用来转换cdQ比如这里是用来Date和String的互转,所以要写上q个c?br />
/**
只要实现它的接口Q它会自动完成{换,q是很方便的
*/
@FacesConverter("monthItemConverter")
public class MonthItemConverter implements Converter {

    private static final Logger LOG = LoggerFactory.getLogger(MonthItemConverter.class);


    @Override
    public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
        return DateUtil.parseDate(arg2);
    }


    @Override
    public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
        return DateUtil.format((Date)arg2);
    }

}

4.表单提交的话Q用q个
<p:commandButton value="Query" update="dataForm"/>
q里面的update要对应这个页面里的form的id
<h:form id="dataForm">


]]>
mod_jk(Apache+mod_jk+tomcat)配置全攻略[转]http://www.aygfsteel.com/Noah/articles/405908.html眼镜?/dc:creator>眼镜?/author>Fri, 01 Nov 2013 10:04:00 GMThttp://www.aygfsteel.com/Noah/articles/405908.htmlhttp://www.aygfsteel.com/Noah/comments/405908.htmlhttp://www.aygfsteel.com/Noah/articles/405908.html#Feedback0http://www.aygfsteel.com/Noah/comments/commentRss/405908.htmlhttp://www.aygfsteel.com/Noah/services/trackbacks/405908.html阅读全文

]]>
Apache转发h到Glassfishhttp://www.aygfsteel.com/Noah/articles/405907.html眼镜?/dc:creator>眼镜?/author>Fri, 01 Nov 2013 09:52:00 GMThttp://www.aygfsteel.com/Noah/articles/405907.htmlhttp://www.aygfsteel.com/Noah/comments/405907.htmlhttp://www.aygfsteel.com/Noah/articles/405907.html#Feedback0http://www.aygfsteel.com/Noah/comments/commentRss/405907.htmlhttp://www.aygfsteel.com/Noah/services/trackbacks/405907.html所以这里就来说一下,q样的一个网l结构,应该怎么实现E序的正常处理?br />
首先下蝲mod_jk.soQ?br />windows:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/
Linux:http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.21/
下蝲后,如果名字不一P要改成和q个名字一LQ然后放|在apache的modules目录?br />然后在apache的conf目录新徏一个workers.properties文gQ内容如下:
# Define 1 real worker using ajp13
worker.list
=worker1
# Set properties for worker1 (ajp13)
worker.worker1.type
=ajp13
worker.worker1.host
=127.0.0.1
# 好多人都?080端口
# 但如果用了的话,׃被apache占用Q?br /># q样无法直接访问Glassfish?br />worker.worker1.port
=9090
worker.worker1.lbfactor
=1
worker.worker1.cachesize
=128
worker.worker1.cache_timeout
=600
worker.worker1.socket_keepalive
=1
#worker.worker1.reclycle_timeout
=300
需要注意的是,host和port。host是GlassFish所在主机的ipQ端口就是GlassFish打开jk支持的Network Listener所监听的端口。GlassFish如何打开jk支持下文会讲q?br />然后修改apache的httpd.conf文gQ加入一些jk相关的配|:
<IfModule !mod_jk>
LoadModule jk_module
"modules/mod_jk.so"
</IfModule>

# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
JkShmFile logs
/mod_jk.shm

JkMount
/*.jsp worker1
JkMount
/*.action worker1
JkMount
/*.do worker1

下面配置GlassFish v3Q?/p>

通过览器进入GlassFish v3的admin consoleQ展开configuration->network config->network listenersQ页面会列出现有的所有监听的端口。例如默认的http-listener1监听8080Qhttp-listener2监听8181Qadmin-listener监听4848?br />刚才说了Z不媄?Glassfish的单独访问,q里我们不用8080Q我们可以新Z个Listener,除了端口以外其它都一?如图
然后建成功后Q点击进入,N上 JK Listener?br />
q样以来Q所有有兛_态解析的一些请求就会{lGlassfish处理了?br />



]]>
JBOSS性能优化http://www.aygfsteel.com/Noah/articles/340440.html眼镜?/dc:creator>眼镜?/author>Mon, 13 Dec 2010 01:15:00 GMThttp://www.aygfsteel.com/Noah/articles/340440.htmlhttp://www.aygfsteel.com/Noah/comments/340440.htmlhttp://www.aygfsteel.com/Noah/articles/340440.html#Feedback0http://www.aygfsteel.com/Noah/comments/commentRss/340440.htmlhttp://www.aygfsteel.com/Noah/services/trackbacks/340440.html一.调整JBOSS最大连接数.

配置deploy/jboss-web.deployer/server.xml文g .
       <Connector
         port="8080"
         address="0.0.0.0"
         maxThreads="1600"
         minSpareThreads="100"
         maxSpareThreads="250"
         emptySessionPath="false"
         enableLookups="false"
         redirectPort="8443"
         acceptCount="800"
         connectionTimeout="20000"
         disableUploadTimeout="true"
         URIEncoding="UTF-8"
         />
maxThreadsQ表C最多同时处理的q接数。应该将U程敎ͼ最大线E数Q设|比最大预期负载(同时q发的点击)?font face="Times New Roman">25%Q经验规则)?br /> acceptCountQ当同时q接的h数达到maxThreadsӞq可以接收排队的q接?/p>

minSpareThreadQ指“启动以后QL保持该数量的U程I闲{待”Q设|比预期负蝲?font face="Times New Roman">25%?/font>

 

maxSpareThreadQ指“如果过?/font>minSpareThreadQ然后L保持该数量的U程I闲{待”Q设|比预期负蝲?font face="Times New Roman">25%?/font>

 

        其中主要修改两个参数maxThreads和acceptCount倹{增加maxThreadsQ减acceptCount值有利羃短系l的响应旉。但是maxThreads和acceptCount的d最高g能超q?000Q而且maxThreadsq大会增加CPU和内存消耗,故低配置用户可通过降低maxThreadsq同时增大acceptCount值来保证pȝ的稳定?/p>

下表|列Z在不同ƈ发情况下jboss参数与ƈ发在U的一般关pR?br />

q发?/p>

服务器内?/p>

jboss参数

    maxThreads acceptCount
50以下 2G 256 800
50-300 4G 600 1024
300-800 8G 1024 1528
800-1000 8G 1024 2048
1000-1200 12G 1526 2048
1200-1500 16G 2048 2048
       
       

 

?调整 jvm参数

AQJVM启动参数共分Zc:
        其一是标准参敎ͼ-Q,所有的JVM实现都必d现这些参数的功能Q而且向后兼容Q?br />         其二是非标准参数Q?XQ,指的是JVM底层的一些配|参敎ͼq些参数在一般开发中默认卛_Q不需要Q何配|。但是在生环境中,q不保证所有jvm实现都满I所以ؓ了提高性能Q往往需要调整这些参敎ͼ以求pȝ辑ֈ最x能。另外这些参C保证向后兼容Q也x?#8220;如有变更Q恕不在后箋版本的JDK通知”Q这是官|上的原话)Q?br />         其三是非Stable参数Q?XXQ,q类参数在jvm中是不稳定的Q不适合日常使用的,后箋也是可能会在没有通知的情况下q接取消了Q需要慎重用?br /> BQ?strong>JVM 内存又可分ؓ三个主要的域 Q?br />         新域、旧域以及永久域。JVM生成的所有新对象攑֜新域中。一旦对象经历了一定数量的垃圾攉循环后,便进入旧域。而在怹域中是用来存储JVM自己的反对象的Q如class和method对象Q而且GC(Garbage Collection)不会在主E序q行期对怹域进行清理。其中新域和旧域属于堆,怹域是一个独立域q且不认为是堆的一部分?br /> CQ各主要参数的作用如?/strong> Q?br />         -XmsQ设|jvm内存的初始大?br />         -XmxQ设|jvm内存的最大?br />         -XmnQ设|新域的大小Q这个似乎只?jdk1.4来说是有效的Q后来就废弃了)
        -XssQ设|每个线E的堆栈大小(也就是说,在相同物理内存下Q减这个D生成更多的线E?
        -XXQNewRatio :讄新域与旧域之比,?XXQNewRatio = 4pC新域与旧域之比?Q?
        -XX:NewSizeQ设|新域的初始?br />         -XX:MaxNewSize Q设|新域的最大?br />         -XX:PermSizeQ设|永久域的初始?br />         -XX:MaxPermSizeQ设|永久域的最大?br />         -XX:SurvivorRatio=n:讄新域中EdenZ两个Survivor区的比倹{(EdenZ要是用来存放新生的对象,而两?Survivor区则用来存放每次垃圾回收后存zM来的对象Q?br /> DQ常见的错误 Q?br />         java.lang.OutOfMemoryError怿很多开发h员都用到q,q个主要是JVM参数没有配好引v的,但是q种错误又分两种Qjava.lang.OutOfMemoryError: Java heap space和java.lang.OutOfMemoryError: PermGen spaceQ其中前者是有关堆内存的内存溢出Q可以同q配|?Xms?Xmx参数来设|,而后者是有关怹域的内存溢出Q可以通过配置 -XX:MaxPermSize来设|?br />

下面是个例子,h据实际情况进行修?修改run.conf文g中的如下内容Q?/font>
 JAVA_OPTS="-Xms256m -Xmx2048m -XX:NewSize=256m -XX:MaxNewSize=512m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -Djboss.platform.mbeanserver"



]]>
log4j详细配置http://www.aygfsteel.com/Noah/articles/329175.html眼镜?/dc:creator>眼镜?/author>Wed, 18 Aug 2010 01:34:00 GMThttp://www.aygfsteel.com/Noah/articles/329175.htmlhttp://www.aygfsteel.com/Noah/comments/329175.htmlhttp://www.aygfsteel.com/Noah/articles/329175.html#Feedback0http://www.aygfsteel.com/Noah/comments/commentRss/329175.htmlhttp://www.aygfsteel.com/Noah/services/trackbacks/329175.htmllog4j.rootLogger=DEBUG,CONSOLE

 

#打印到控制台

log4j.appender.CONSOLE
=org.apache.log4j.ConsoleAppender 

log4j.appender.CONSOLE.Threshold
=DEBUG 

log4j.appender.CONSOLE.Target
=System.out 

#log4j.appender.CONSOLE.Encoding
=GBK 

log4j.appender.CONSOLE.layout
=org.apache.log4j.PatternLayout

log4j.appender.CONSOLE.layout.ConversionPattern
=[log] %d - %c -%-4r [%t] %-5p %c %x - %m%n

 

#log4j.appender.CONSOLE.layout.ConversionPattern
=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n 

#

##打印到单一文g

#log4j.appender.FILE
=org.apache.log4j.FileAppender 

#log4j.appender.FILE.File
=info/info.log 

#log4j.appender.FILE.Threshold
=DEBUG

#log4j.appender.FILE.Append
=false 

##log4j.appender.FILE.Encoding
=GBK 

#log4j.appender.FILE.layout
=org.apache.log4j.PatternLayout 

#log4j.appender.FILE.layout.ConversionPattern
=[log] %d - %c -%-4r [%t] %-5p %c %x - %m%n 

## Use this layout for LogFactor 
5 analysis 

#



log4j.appender.ROLLING_FILE
=org.apache.log4j.RollingFileAppender 

log4j.appender.ROLLING_FILE.Threshold
=INFO

log4j.appender.ROLLING_FILE.File
=info/info

log4j.appender.ROLLING_FILE.Append
=true 

##log4j.appender.CONSOLE_FILE.Encoding
=GBK 

log4j.appender.ROLLING_FILE.MaxFileSize
=3072KB 

log4j.appender.ROLLING_FILE.MaxBackupIndex
=10000000 

log4j.appender.ROLLING_FILE.layout
=org.apache.log4j.PatternLayout

log4j.appender.ROLLING_FILE.layout.ConversionPattern
=[log]  %d   -  %c  -%-4r   [%t] %-5p %c %x - %m%n 

 

## 每天生成一个文?br />
#log4j.appender.Daily
=org.apache.log4j.DailyRollingFileAppender 

#log4j.appender.Daily.Threshold
=DEBUG

#log4j.appender.Daily.File
=daily/log

##log4j.appender.A1.Encoding
=GBK 

#log4j.appender.Daily.DatePattern
='.'yyyy-MM-dd 

#log4j.appender.Daily.layout
=org.apache.log4j.PatternLayout 

#log4j.appender.Daily.layout.ConversionPattern
=[log]  %d   -  %c  -%-4r   [%t] %-5p %c %x - %m%n 

 

#通过socket发?br />
##log4j.appender.SOCKET
=org.apache.log4j.RollingFileAppender 

##log4j.appender.SOCKET.RemoteHost
=localhost 

##log4j.appender.SOCKET.Port
=5001 

##log4j.appender.SOCKET.LocationInfo
=true 

# Set up for Log Facter 
5 

##log4j.appender.SOCKET.layout
=org.apache.log4j.PatternLayout 

##log4j.appender.SOCET.layout.ConversionPattern
=[start]%d{DATE}[DATE]%n%p[PRIORITY]% n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n 

 

# Log Factor 
5 Appender 

##log4j.appender.LF5_APPENDER
=org.apache.log4j.lf5.LF5Appender 

##log4j.appender.LF5_APPENDER.MaxNumberOfRecords
=2000 

 

#  通过mail发?br />
##log4j.appender.MAIL
=org.apache.log4j.net.SMTPAppender 

##log4j.appender.MAIL.Threshold
=FATAL 

##log4j.appender.MAIL.BufferSize
=10 

##log4j.appender.MAIL.From
=web@www.wuset.com 

##log4j.appender.MAIL.SMTPHost
=www.wusetu.com 

##log4j.appender.MAIL.Subject
=Log4J Message 

##log4j.appender.MAIL.To
=web@www.wusetu.com 

##log4j.appender.MAIL.layout
=org.apache.log4j.PatternLayout 

##log4j.appender.MAIL.layout.ConversionPattern
=[log] %d - %c -%-4r [%t] %-5p %c %x - %m%n 

 

#   存储到数据库

##log4j.appender.DATABASE
=org.apache.log4j.jdbc.JDBCAppender 

##log4j.appender.DATABASE.URL
=jdbc:mysql://localhost:3306/test 

##log4j.appender.DATABASE.driver
=com.mysql.jdbc.Driver 

##log4j.appender.DATABASE.user
=root 

##log4j.appender.DATABASE.password
= 

##log4j.appender.DATABASE.sql
=INSERT INTO LOG4J (Message) VALUES ([log] %d - %c -%-4r [%t] %-5p %c %x - %m%n') 

##log4j.appender.DATABASE.layout
=org.apache.log4j.PatternLayout 

##log4j.appender.DATABASE.layout.ConversionPattern
=[log]  %d     -   %c  -%-4r  [%t]  %-5p %c %x - %m%n 

 

 

 

# IM账号

##log4j.appender.im 
= net.cybercorlin.util.logger.appender.IMAppender 

 

##log4j.appender.im.host 
= mail.cybercorlin.net 

##log4j.appender.im.username 
= username 

##log4j.appender.im.password 
= password 

##log4j.appender.im.recipient 
= corlin@cybercorlin.net 

##log4j.appender.im.layout
=org.apache.log4j.PatternLayout 

##log4j.appender.im.layout.ConversionPattern   
=[log]   %d   -   %c   -%-4r   [%t]   %-5p   %c   %x   - %m%n 



]]>
Liferay中部分配|文?Portal.properties)的相兌?/title><link>http://www.aygfsteel.com/Noah/articles/286450.html</link><dc:creator>眼镜?/dc:creator><author>眼镜?/author><pubDate>Sun, 12 Jul 2009 05:19:00 GMT</pubDate><guid>http://www.aygfsteel.com/Noah/articles/286450.html</guid><wfw:comment>http://www.aygfsteel.com/Noah/comments/286450.html</wfw:comment><comments>http://www.aygfsteel.com/Noah/articles/286450.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Noah/comments/commentRss/286450.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Noah/services/trackbacks/286450.html</trackback:ping><description><![CDATA[<p> </p> <p>一句话也不用多_</p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080"> 1</span><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><span style="color: #000000">#讄囄库中Q上传图片的大小Q单位是Bit <br /> </span><span style="color: #008080"> 2</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />ig.image.max.size</span><span style="color: #000000">=</span><span style="color: #000000">10240000</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 3</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#允许囄上传的类?br /> </span><span style="color: #008080"> 4</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />ig.image.extensions</span><span style="color: #000000">=</span><span style="color: #000000">.bmp</span><span style="color: #000000">,</span><span style="color: #000000">.gif</span><span style="color: #000000">,</span><span style="color: #000000">.jpeg</span><span style="color: #000000">,</span><span style="color: #000000">.jpg</span><span style="color: #000000">,</span><span style="color: #000000">.png</span><span style="color: #000000">,</span><span style="color: #000000">.tif</span><span style="color: #000000">,</span><span style="color: #000000">.tiff<br /> </span><span style="color: #008080"> 5</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /> </span><span style="color: #008080"> 6</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#讄文档库中Q上传文件的大小Q单位是Bit<br /> </span><span style="color: #008080"> 7</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />dl.file.max.size</span><span style="color: #000000">=</span><span style="color: #000000">3072000</span><span style="color: #000000"><br /> </span><span style="color: #008080"> 8</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /> </span><span style="color: #008080"> 9</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#允许文档上传的类?br /> </span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />dl.file.extensions</span><span style="color: #000000">=</span><span style="color: #000000">.bmp</span><span style="color: #000000">,</span><span style="color: #000000">.css</span><span style="color: #000000">,</span><span style="color: #000000">.doc</span><span style="color: #000000">,</span><span style="color: #000000">.dot</span><span style="color: #000000">,</span><span style="color: #000000">.gif</span><span style="color: #000000">,</span><span style="color: #000000">.gz</span><span style="color: #000000">,</span><span style="color: #000000">.htm</span><span style="color: #000000">,</span><span style="color: #000000">.html</span><span style="color: #000000">,</span><span style="color: #000000">.jpg</span><span style="color: #000000">,</span><span style="color: #000000">.js</span><span style="color: #000000">,</span><span style="color: #000000">.odb</span><span style="color: #000000">,</span><span style="color: #000000">.odf</span><span style="color: #000000">,</span><span style="color: #000000">.odg</span><span style="color: #000000">,</span><span style="color: #000000">.odp</span><span style="color: #000000">,</span><span style="color: #000000">.ods</span><span style="color: #000000">,</span><span style="color: #000000">.odt</span><span style="color: #000000">,</span><span style="color: #000000">.pdf</span><span style="color: #000000">,</span><span style="color: #000000">.png</span><span style="color: #000000">,</span><span style="color: #000000">.ppt</span><span style="color: #000000">,</span><span style="color: #000000">.rtf</span><span style="color: #000000">,</span><span style="color: #000000">.swf</span><span style="color: #000000">,</span><span style="color: #000000">.sxc</span><span style="color: #000000">,</span><span style="color: #000000">.sxi</span><span style="color: #000000">,</span><span style="color: #000000">.sxw</span><span style="color: #000000">,</span><span style="color: #000000">.tar</span><span style="color: #000000">,</span><span style="color: #000000">.tiff</span><span style="color: #000000">,</span><span style="color: #000000">.tgz</span><span style="color: #000000">,</span><span style="color: #000000">.txt</span><span style="color: #000000">,</span><span style="color: #000000">.vsd</span><span style="color: #000000">,</span><span style="color: #000000">.xls</span><span style="color: #000000">,</span><span style="color: #000000">.xml</span><span style="color: #000000">,</span><span style="color: #000000">.zip<br /> </span><span style="color: #008080">11</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /> </span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#d相关Q这个可以在企业理里设|)<br /> </span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />company.security.auth.type</span><span style="color: #000000">=</span><span style="color: #000000">screenName<br /> </span><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />company.security.auto.login</span><span style="color: #000000">=</span><span style="color: #000000">false<br /> </span><span style="color: #008080">15</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />company.security.send.password</span><span style="color: #000000">=</span><span style="color: #000000">false<br /> </span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />company.security.strangers</span><span style="color: #000000">=</span><span style="color: #000000">false<br /> </span><span style="color: #008080">17</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />open.id.auth.enabled</span><span style="color: #000000">=</span><span style="color: #000000">false<br /> </span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /> </span><span style="color: #008080">19</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#是否出现用户首次登陆的协议页?br /> </span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />terms.of.use.required</span><span style="color: #000000">=</span><span style="color: #000000">true<br /> </span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /> <br /> </span><span style="color: #008080">22</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#默认用户布局<br /> </span><span style="color: #008080">23</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#可以自己讄上面要放的Portlet?br /> </span><span style="color: #008080">24</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />default.user.layout.name</span><span style="color: #000000">=</span><span style="color: #000000">Home<br /> </span><span style="color: #008080">25</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />default.user.layout.template.id</span><span style="color: #000000">=</span><span style="color: #000000">3_columns<br /> </span><span style="color: #008080">26</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />default.user.layout.column-</span><span style="color: #000000">1</span><span style="color: #000000">=</span><span style="color: #000000"><br /> </span><span style="color: #008080">27</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />default.user.layout.column-</span><span style="color: #000000">2</span><span style="color: #000000">=</span><span style="color: #000000"><br /> </span><span style="color: #008080">28</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />default.user.layout.column-</span><span style="color: #000000">3</span><span style="color: #000000">=</span><span style="color: #000000"><br /> </span><span style="color: #008080">29</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />default.user.layout.column-</span><span style="color: #000000">4</span><span style="color: #000000">=</span><span style="color: #000000"><br /> </span><span style="color: #008080">30</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /> </span><span style="color: #008080">31</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#讄默认的用h?br /> </span><span style="color: #008080">32</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />layout.default.template.id</span><span style="color: #000000">=</span><span style="color: #000000">2_columns_ii<br /> </span><span style="color: #008080">33</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /> <br /> </span><span style="color: #008080">34</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#Session控制<br /> </span><span style="color: #008080">35</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />session.timeout</span><span style="color: #000000">=</span><span style="color: #000000">30</span><span style="color: #000000"><br /> </span><span style="color: #008080">36</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />session.timeout.warning</span><span style="color: #000000">=</span><span style="color: #000000">1</span><span style="color: #000000"><br /> </span><span style="color: #008080">37</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />session.timeout.auto.extend</span><span style="color: #000000">=</span><span style="color: #000000">false<br /> </span><span style="color: #008080">38</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /> <br /> </span><span style="color: #008080">39</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#隐藏没权限的Portlet<br /> </span><span style="color: #008080">40</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />layout.show.portlet.access.denied</span><span style="color: #000000">=</span><span style="color: #000000">false<br /> </span><span style="color: #008080">41</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#隐藏不活动的Portlet<br /> </span><span style="color: #008080">42</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />layout.show.portlet.inactive</span><span style="color: #000000">=</span><span style="color: #000000">false<br /> </span><span style="color: #008080">43</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#讄用户是否可以增加Portlet<br /> </span><span style="color: #008080">44</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />layout.add.portlets</span><span style="color: #000000">=</span><span style="color: #000000">true<br /> </span><span style="color: #008080">45</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#讄是否昄最大化图标<br /> </span><span style="color: #008080">46</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />layout.guest.show.max.icon</span><span style="color: #000000">=</span><span style="color: #000000">true<br /> </span><span style="color: #008080">47</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#讄是否昄最化图标<br /> </span><span style="color: #008080">48</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />layout.guest.show.min.icon</span><span style="color: #000000">=</span><span style="color: #000000">false<br /> </span><span style="color: #008080">49</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /> </span><span style="color: #008080">50</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#权限讄的读取\?br /> </span><span style="color: #008080">51</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />resource.actions.configs</span><span style="color: #000000">=</span><span style="color: #000000">resource-actions/default.xml<br /> </span><span style="color: #008080">52</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /> </span><span style="color: #008080">53</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#讄默认的用户头?br /> </span><span style="color: #008080">54</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />image.default.user.female.portrait</span><span style="color: #000000">=</span><span style="color: #000000">com/liferay/portal/dependencies/user_female_portrait.gif<br /> </span><span style="color: #008080">55</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />image.default.user.male.portrait</span><span style="color: #000000">=</span><span style="color: #000000">com/liferay/portal/dependencies/user_male_portrait.gif<br /> </span><span style="color: #008080">56</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /> </span><span style="color: #008080">57</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#讄默认的Logo<br /> </span><span style="color: #008080">58</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />image.default.company.logo</span><span style="color: #000000">=</span><span style="color: #000000">com/liferay/portal/dependencies/company_logo.png<br /> </span><span style="color: #008080">59</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /> </span><span style="color: #008080">60</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#讄认证登陆的页?br /> </span><span style="color: #008080">61</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />auth.login.url</span><span style="color: #000000">=</span><span style="color: #000000">/web/</span><span style="color: #000000">12702</span><span style="color: #000000">/</span><span style="color: #000000">1</span><span style="color: #000000"><br /> </span><span style="color: #008080">62</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#讄d后的面路径<br /> </span><span style="color: #008080">63</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />default.logout.page.path</span><span style="color: #000000">=</span><span style="color: #000000">/web/</span><span style="color: #000000">12702</span><span style="color: #000000"><br /> </span><span style="color: #008080">64</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /><br /> </span><span style="color: #008080">65</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />#讄默认的用戯?br /> </span><span style="color: #008080">66</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" />admin.default.role.names</span><span style="color: #000000">=</span><span style="color: #000000">Power User\nUser<br /> </span><span style="color: #008080">67</span><span style="color: #000000"><img align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" alt="" /></span></div> <img src ="http://www.aygfsteel.com/Noah/aggbug/286450.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Noah/" target="_blank">眼镜?/a> 2009-07-12 13:19 <a href="http://www.aygfsteel.com/Noah/articles/286450.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CAS单点登陆,中文用户名无法验证解x?/title><link>http://www.aygfsteel.com/Noah/articles/286449.html</link><dc:creator>眼镜?/dc:creator><author>眼镜?/author><pubDate>Sun, 12 Jul 2009 05:02:00 GMT</pubDate><guid>http://www.aygfsteel.com/Noah/articles/286449.html</guid><wfw:comment>http://www.aygfsteel.com/Noah/comments/286449.html</wfw:comment><comments>http://www.aygfsteel.com/Noah/articles/286449.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/Noah/comments/commentRss/286449.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/Noah/services/trackbacks/286449.html</trackback:ping><description><![CDATA[<p>登陆名如果用中文的话Q会出现qQ导致无法验证通过。解决中文问题无非就是编码问题,其中需要{换编码的有以下几个地方.</p> <p>W一Q在Web.xml文g里加上FilterQ对所有页面进行一ơ编码{换.</p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080"> 1</span><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #0000ff"><</span><span style="color: #800000">filter</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 2</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">description</span><span style="color: #0000ff">></span><span style="color: #000000">EncodingFilter</span><span style="color: #0000ff"></</span><span style="color: #800000">description</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 3</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span><span style="color: #000000">EncodingFilter</span><span style="color: #0000ff"></</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 4</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">></span><span style="color: #000000">com.xyb.EncodingFilter</span><span style="color: #0000ff"></</span><span style="color: #800000">filter-class</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 5</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">init-param</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 6</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />            </span><span style="color: #0000ff"><</span><span style="color: #800000">description</span><span style="color: #0000ff">></span><span style="color: #000000">encoding_charset</span><span style="color: #0000ff"></</span><span style="color: #800000">description</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 7</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />            </span><span style="color: #0000ff"><</span><span style="color: #800000">param-name</span><span style="color: #0000ff">></span><span style="color: #000000">encoding</span><span style="color: #0000ff"></</span><span style="color: #800000">param-name</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 8</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />            </span><span style="color: #0000ff"><</span><span style="color: #800000">param-value</span><span style="color: #0000ff">>gb2312</span><span style="color: #0000ff"></</span><span style="color: #800000">param-value</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080"> 9</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"></</span><span style="color: #800000">init-param</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">init-param</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />            </span><span style="color: #0000ff"><</span><span style="color: #800000">param-name</span><span style="color: #0000ff">></span><span style="color: #000000">ignore</span><span style="color: #0000ff"></</span><span style="color: #800000">param-name</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />            </span><span style="color: #0000ff"><</span><span style="color: #800000">param-value</span><span style="color: #0000ff">></span><span style="color: #000000">true</span><span style="color: #0000ff"></</span><span style="color: #800000">param-value</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"></</span><span style="color: #800000">init-param</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080">14</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff"></</span><span style="color: #800000">filter</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff"><</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080">16</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span><span style="color: #000000">EncodingFilter</span><span style="color: #0000ff"></</span><span style="color: #800000">filter-name</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080">17</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" />        </span><span style="color: #0000ff"><</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span><span style="color: #000000">/*</span><span style="color: #0000ff"></</span><span style="color: #800000">url-pattern</span><span style="color: #0000ff">></span><span style="color: #000000"><br /> </span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff"></</span><span style="color: #800000">filter-mapping</span><span style="color: #0000ff">></span></div> <p>下面是EncodingFilterc:</p> <div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080"> 1</span><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">package</span><span style="color: #000000"> com.xyb;<br /> </span><span style="color: #008080"> 2</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> </span><span style="color: #008080"> 3</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.io.IOException;<br /> </span><span style="color: #008080"> 4</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> </span><span style="color: #008080"> 5</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.Filter;<br /> </span><span style="color: #008080"> 6</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.FilterChain;<br /> </span><span style="color: #008080"> 7</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.FilterConfig;<br /> </span><span style="color: #008080"> 8</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.ServletException;<br /> </span><span style="color: #008080"> 9</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.ServletRequest;<br /> </span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.ServletResponse;<br /> </span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/None.gif" /><br /> </span><span style="color: #008080">12</span><span style="color: #000000"><img id="Codehighlighter1_260_288_Open_Image" onclick="this.style.display='none'; Codehighlighter1_260_288_Open_Text.style.display='none'; Codehighlighter1_260_288_Closed_Image.style.display='inline'; Codehighlighter1_260_288_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_260_288_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_260_288_Closed_Text.style.display='none'; Codehighlighter1_260_288_Open_Image.style.display='inline'; Codehighlighter1_260_288_Open_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" /></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_260_288_Closed_Text">/** */</span><span id="Codehighlighter1_260_288_Open_Text"><span style="color: #008000">/**</span><span style="color: #008000"><br /> </span><span style="color: #008080">13</span><span style="color: #008000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />*<br /> </span><span style="color: #008080">14</span><span style="color: #008000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />* </span><span style="color: #808080">@author</span><span style="color: #008000"> XiangYabin<br /> </span><span style="color: #008080">15</span><span style="color: #008000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" /></span><span style="color: #008000">*/</span></span><span style="color: #000000"><br /> </span><span style="color: #008080">16</span><span style="color: #000000"><img id="Codehighlighter1_336_1811_Open_Image" onclick="this.style.display='none'; Codehighlighter1_336_1811_Open_Text.style.display='none'; Codehighlighter1_336_1811_Closed_Image.style.display='inline'; Codehighlighter1_336_1811_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" /><img style="display: none" id="Codehighlighter1_336_1811_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_336_1811_Closed_Text.style.display='none'; Codehighlighter1_336_1811_Open_Image.style.display='inline'; Codehighlighter1_336_1811_Open_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> EncodingFilter </span><span style="color: #0000ff">implements</span><span style="color: #000000"> Filter </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_336_1811_Closed_Text"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_336_1811_Open_Text"><span style="color: #000000">{<br /> </span><span style="color: #008080">17</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />    <br /> </span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">protected</span><span style="color: #000000"> String encoding </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /> </span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">protected</span><span style="color: #000000"> FilterConfig filterConfig </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /> </span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">protected</span><span style="color: #000000"> </span><span style="color: #0000ff">boolean</span><span style="color: #000000"> ignore </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /> </span><span style="color: #008080">21</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />    <br /> </span><span style="color: #008080">22</span><span style="color: #000000"><img id="Codehighlighter1_497_585_Open_Image" onclick="this.style.display='none'; Codehighlighter1_497_585_Open_Text.style.display='none'; Codehighlighter1_497_585_Closed_Image.style.display='inline'; Codehighlighter1_497_585_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_497_585_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_497_585_Closed_Text.style.display='none'; Codehighlighter1_497_585_Open_Image.style.display='inline'; Codehighlighter1_497_585_Open_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> destroy() </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_497_585_Closed_Text"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_497_585_Open_Text"><span style="color: #000000">{<br /> </span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        <br /> </span><span style="color: #008080">24</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.encoding </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /> </span><span style="color: #008080">25</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.filterConfig </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">;<br /> </span><span style="color: #008080">26</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        <br /> </span><span style="color: #008080">27</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />    }</span></span><span style="color: #000000"><br /> </span><span style="color: #008080">28</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />    <br /> </span><span style="color: #008080">29</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> doFilter(ServletRequest request, ServletResponse response,<br /> </span><span style="color: #008080">30</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />            FilterChain chain)<br /> </span><span style="color: #008080">31</span><span style="color: #000000"><img id="Codehighlighter1_747_1139_Open_Image" onclick="this.style.display='none'; Codehighlighter1_747_1139_Open_Text.style.display='none'; Codehighlighter1_747_1139_Closed_Image.style.display='inline'; Codehighlighter1_747_1139_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_747_1139_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_747_1139_Closed_Text.style.display='none'; Codehighlighter1_747_1139_Open_Image.style.display='inline'; Codehighlighter1_747_1139_Open_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" />            </span><span style="color: #0000ff">throws</span><span style="color: #000000"> IOException, ServletException </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_747_1139_Closed_Text"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_747_1139_Open_Text"><span style="color: #000000">{<br /> </span><span style="color: #008080">32</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #008000">//</span><span style="color: #008000"> Conditionally select and set the character encoding to be used</span><span style="color: #008000"><br /> </span><span style="color: #008080">33</span><span style="color: #008000"><img id="Codehighlighter1_879_1034_Open_Image" onclick="this.style.display='none'; Codehighlighter1_879_1034_Open_Text.style.display='none'; Codehighlighter1_879_1034_Closed_Image.style.display='inline'; Codehighlighter1_879_1034_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_879_1034_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_879_1034_Closed_Text.style.display='none'; Codehighlighter1_879_1034_Open_Image.style.display='inline'; Codehighlighter1_879_1034_Open_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" /></span><span style="color: #000000">        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (ignore </span><span style="color: #000000">||</span><span style="color: #000000"> (request.getCharacterEncoding() </span><span style="color: #000000">==</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">)) </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_879_1034_Closed_Text"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_879_1034_Open_Text"><span style="color: #000000">{<br /> </span><span style="color: #008080">34</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />            String encoding </span><span style="color: #000000">=</span><span style="color: #000000"> selectEncoding(request);<br /> </span><span style="color: #008080">35</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />            </span><span style="color: #0000ff">if</span><span style="color: #000000"> (encoding </span><span style="color: #000000">!=</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">)<br /> </span><span style="color: #008080">36</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />                request.setCharacterEncoding(encoding);<br /> </span><span style="color: #008080">37</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />        }</span></span><span style="color: #000000"><br /> </span><span style="color: #008080">38</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        <br /> </span><span style="color: #008080">39</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #008000">//</span><span style="color: #008000"> Pass control on to the next filter</span><span style="color: #008000"><br /> </span><span style="color: #008080">40</span><span style="color: #008000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #000000">        chain.doFilter(request, response);<br /> </span><span style="color: #008080">41</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        <br /> </span><span style="color: #008080">42</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />    }</span></span><span style="color: #000000"><br /> </span><span style="color: #008080">43</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />    <br /> </span><span style="color: #008080">44</span><span style="color: #000000"><img id="Codehighlighter1_1218_1681_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1218_1681_Open_Text.style.display='none'; Codehighlighter1_1218_1681_Closed_Image.style.display='inline'; Codehighlighter1_1218_1681_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_1218_1681_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1218_1681_Closed_Text.style.display='none'; Codehighlighter1_1218_1681_Open_Image.style.display='inline'; Codehighlighter1_1218_1681_Open_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" />    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> init(FilterConfig filterConfig) </span><span style="color: #0000ff">throws</span><span style="color: #000000"> ServletException </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1218_1681_Closed_Text"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_1218_1681_Open_Text"><span style="color: #000000">{<br /> </span><span style="color: #008080">45</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        <br /> </span><span style="color: #008080">46</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.filterConfig </span><span style="color: #000000">=</span><span style="color: #000000"> filterConfig;<br /> </span><span style="color: #008080">47</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">this</span><span style="color: #000000">.encoding </span><span style="color: #000000">=</span><span style="color: #000000"> filterConfig.getInitParameter(</span><span style="color: #000000">"</span><span style="color: #000000">encoding</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> </span><span style="color: #008080">48</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        String value </span><span style="color: #000000">=</span><span style="color: #000000"> filterConfig.getInitParameter(</span><span style="color: #000000">"</span><span style="color: #000000">ignore</span><span style="color: #000000">"</span><span style="color: #000000">);<br /> </span><span style="color: #008080">49</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">if</span><span style="color: #000000"> (value </span><span style="color: #000000">==</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">)<br /> </span><span style="color: #008080">50</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />            </span><span style="color: #0000ff">this</span><span style="color: #000000">.ignore </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /> </span><span style="color: #008080">51</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (value.equalsIgnoreCase(</span><span style="color: #000000">"</span><span style="color: #000000">true</span><span style="color: #000000">"</span><span style="color: #000000">))<br /> </span><span style="color: #008080">52</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />            </span><span style="color: #0000ff">this</span><span style="color: #000000">.ignore </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /> </span><span style="color: #008080">53</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">else</span><span style="color: #000000"> </span><span style="color: #0000ff">if</span><span style="color: #000000"> (value.equalsIgnoreCase(</span><span style="color: #000000">"</span><span style="color: #000000">yes</span><span style="color: #000000">"</span><span style="color: #000000">))<br /> </span><span style="color: #008080">54</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />            </span><span style="color: #0000ff">this</span><span style="color: #000000">.ignore </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /> </span><span style="color: #008080">55</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">else</span><span style="color: #000000"><br /> </span><span style="color: #008080">56</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />            </span><span style="color: #0000ff">this</span><span style="color: #000000">.ignore </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /> </span><span style="color: #008080">57</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        <br /> </span><span style="color: #008080">58</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />    }</span></span><span style="color: #000000"><br /> </span><span style="color: #008080">59</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />    <br /> </span><span style="color: #008080">60</span><span style="color: #000000"><img id="Codehighlighter1_1748_1804_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1748_1804_Open_Text.style.display='none'; Codehighlighter1_1748_1804_Closed_Image.style.display='inline'; Codehighlighter1_1748_1804_Closed_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" /><img style="display: none" id="Codehighlighter1_1748_1804_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1748_1804_Closed_Text.style.display='none'; Codehighlighter1_1748_1804_Open_Image.style.display='inline'; Codehighlighter1_1748_1804_Open_Text.style.display='inline';" alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedSubBlock.gif" />    </span><span style="color: #0000ff">protected</span><span style="color: #000000"> String selectEncoding(ServletRequest request) </span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1748_1804_Closed_Text"><img alt="" src="http://www.aygfsteel.com/Images/dot.gif" /></span><span id="Codehighlighter1_1748_1804_Open_Text"><span style="color: #000000">{<br /> </span><span style="color: #008080">61</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        <br /> </span><span style="color: #008080">62</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        </span><span style="color: #0000ff">return</span><span style="color: #000000"> (</span><span style="color: #0000ff">this</span><span style="color: #000000">.encoding);<br /> </span><span style="color: #008080">63</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />        <br /> </span><span style="color: #008080">64</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" />    }</span></span><span style="color: #000000"><br /> </span><span style="color: #008080">65</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/InBlock.gif" />    <br /> </span><span style="color: #008080">66</span><span style="color: #000000"><img alt="" align="top" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div> <p>W二步,修改CAS登陆验证面的编码,如果你没换过q个主题的话Q默认的是修改WEB-INF\view\jsp\default\ui\casLoginView.jsp文gQ在最上面加上<%@ page pageEncoding="gb2312"%>。这里要特别注意一下,q个面的编码要和上面XML文g里写的编码一致?/p> <p>W三步,修改验证成功后做跌{的页面。也是WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp文gQ在最上面加上<%@ page pageEncoding="UTF-8"%>。这里特别注意的是这个页面的~码要和你蟩转过ȝ那个面的编码一_换句话说Q客L的验证页面的~码要和q个地方的一_不一致的话,要{换一下?/p> <p>l过q三步之后,理论上讲已l可以验证通过了?/p> <img src ="http://www.aygfsteel.com/Noah/aggbug/286449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/Noah/" target="_blank">眼镜?/a> 2009-07-12 13:02 <a href="http://www.aygfsteel.com/Noah/articles/286449.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Liferay中用CAS实现单点登陆(SSO)http://www.aygfsteel.com/Noah/articles/256018.html眼镜?/dc:creator>眼镜?/author>Sun, 22 Feb 2009 04:53:00 GMThttp://www.aygfsteel.com/Noah/articles/256018.htmlhttp://www.aygfsteel.com/Noah/comments/256018.htmlhttp://www.aygfsteel.com/Noah/articles/256018.html#Feedback4http://www.aygfsteel.com/Noah/comments/commentRss/256018.htmlhttp://www.aygfsteel.com/Noah/services/trackbacks/256018.html单点登陆(SSO)的实现方式有很多U,q里所说的是用CAS实现Q这也是Liferay中所采纳的方式。至于什么是CASQ单点登陆实现的原理{,q里不做解释Q直接一步一步明说实现方式,好了Q多一个字的费话也不说了?/p>

W一步,创徏证书

keytool -genkey -alias tomcat -keystore c:\mykeystore  -dname "CN=xyb, OU=localhost, O=localhost, L=SH, ST=SH, C=CN" -keypass 123456 -storepass 123456

PS:

 -genkey         创徏一个证?br /> -alias          证书的别?br /> -keystore       指定生成此证书的路径(可不写,默认存在pȝ的Home目录?keystore文g?br /> -storepass      指定密钥库的密码
-keypass        指定别名条目的密?br /> -dname          指定证书拥有者信?可不写,但,pȝ会提CZ依次输入q些信息Q特别要注意“CN”的值是你想做ؓCAS服务器的q台机器的域名或机器名,但就是不能是IP)
-keyalg         指定密钥的算?可不?   
-validity       指定创徏的证书有效期多少?可不写,默认?0?

W二步,导出证书

keytool -export -alias tomcat -keystore c:\mykeystore -file c:\mycerts.cer -storepass 123456

PS:

-export         别名指定的证书导出到文?br /> -keystore       指定生成此证书的路径(上一步中写的什么这写什么,如果没写Q这也不?
 -file           指定导出到文件的文g?/p>

W三步,把导出的证书导入到客L服务?/p>

keytool -import -trustcacerts -alias tomcat -keystore "%JAVA_HOME%/JRE/LIB/SECURITY/CACERTS" -storepass 123456 -file c:\mycerts.cer

PS:

-import         已{֐数字证书导入密钥?br /> -file           指定要导入到密钥库的文g?也就是上一步导出的那个文g)
有一个提C:是否信Qq个证书Q输?YQ回车?/p>

W四步,下蝲cas集成包。将下蝲后的文g改名为cas-webQ放|在liferay的webapps目录下,在conf/server.xml中找C面这D,L原有的注释ƈ修改为:

<Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" URIEncoding="UTF-8"  keystorePass="123456" keyAlias="tomcat"/>

W五步,在Liferay的webapps\ROOT\WEB-INF\classes\portal-ext.properties下添加如下内容:

cas.auth.enabled=true
cas.login.url=https://xyb:8443/cas-web/login
cas.logout.url=https://xyb:8443/cas-web/logout
cas.server.name=客户端IP:8080
cas.service.url=
#cas.service.url=http://localhost:8080/c/portal/login
cas.validate.url=https://xyb:8443/cas-web/proxyValidate

如果没在Liferay下,只是普通的WebE序可用Filter来实玎ͼ打开Web-INF\Web.XML文gQ增加如下代?/p>

<filter>
        
<filter-name>CASFilter</filter-name>
        
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
        
<init-param>
            
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
            
<param-value>https://xyb:8443/cas-web/login</param-value>
        
</init-param><!--q里的xyb是CAS服务端的IP或机器名-->
        
<init-param>
            
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
            
<param-value>https://xyb:8443/cas-web/proxyValidate</param-value>
        
</init-param>
        
<init-param>
          
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
          
<param-value>localhost:8080</param-value><!--client:port是需要CAS需要拦截的地址和端口,一般就是这个TOMCAT所启动的IP和port-->
        
</init-param>
    
</filter>
    
    
<filter-mapping>
        
<filter-name>CASFilter</filter-name>
        
<url-pattern>/*</url-pattern><!--q里是你要拦截的URLh-->
    
</filter-mapping>

 

最后一步,在客L获取CAS认证通过的用户名Qƈ修改w䆾验证E序为只通过用户名来验证。如是在Liferay下就不用做这一步了QLiferay中本w的验证是ScreenName字段

1、在JSP或Servlet中的用法Q?/p>

<%@ page import="edu.yale.its.tp.cas.client.filter.CASFilter" %>
<%@ page import="javax.servlet.http.HttpServletRequest" %>
<%@ page import="javax.servlet.http.HttpSession" %>
<%
HttpSession ses 
= request.getSession();

String screenName 
=
(String)ses.getAttribute(CASFilter.CAS_FILTER_USER);
System.out.println(
"screenName==:"+screenName);
%> 

2、在Java中通过 Session 获取d用户?/p>

// 以下两者都可以
session.getAttribute(CASFilter.CAS_FILTER_USER);
session.getAttribute(
"edu.yale.its.tp.cas.client.filter.user");

3、在 JSTL 中获取用户名的方?/p>

<c:out value="${sessionScope[CAS:'edu.yale.its.tp.cas.client.filter.user']}"/>


问题汇总:

 严重: edu.yale.its.tp.cas.client.CASAuthenticationException: Unable to validate ProxyTicketValidator [[edu.yale.its.tp.cas.client.ProxyTicketValidator prox
yList=[null] [edu.yale.its.tp.cas.client.ServiceTicketValidator casValidateUrl=[https://192.168.1.111:8443/cas/proxyValidate] ticket=[ST-0-9h7Mx5HK3pfsdxRv
MD3y] service=[http%3A%2F%2F192.168.1.222%3A8080%2Fservlets-examples%2Fservlet%2FHelloWorldExample] renew=false]]]

q个CAS异常是从CAS Client里面抛出Q是当我们不使用证书的CN去访问域名的时候(比如上文是用IP讉K而且证书的CN是该IP对应的域名而非该IPQ,CASClient无法信QQ也是我上面特意提到的那个CN的问题。要特别注意?/p>

q有一U情况就是客L证书没有导入,同样也报q个错误,最l可以归Z句话,肯定是证书验证没有通过所?

 

INFO [org.jasig.cas.authentication.AuthenticationManager
Impl] - <AuthenticationHandler: cn.com.tiansky.cas.authenticationHandlers.UPAuthenticationHandler successfully authenticated the user which provided the followi
ng credentials: [username: test]>

q错误Q可能是客户端的那个配置文g里写的不太对。也是上面说的W五步,要多注意一下?/p>

 

java.io.IOException: Cannot recover key
        at org.apache.tomcat.util.net.jsse.JSSE14SocketFactory.init(JSSE14Socket
Factory.java:125)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESo
cketFactory.java:88)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoi
nt.java:292)
        at org.apache.coyote.http11.Http11BaseProtocol.init(Http11BaseProtocol.j
ava:138)
        at org.apache.catalina.connector.Connector.initialize(Connector.java:101

q种错误Q可能是你生成的证书有问题,如果keypass和storepass的密码不一致也会把q个?不知Z么非要设成一L)



]]>
Java获取当前日期的前一个月Q前一天的旉http://www.aygfsteel.com/Noah/articles/250562.html眼镜?/dc:creator>眼镜?/author>Thu, 08 Jan 2009 15:20:00 GMThttp://www.aygfsteel.com/Noah/articles/250562.htmlhttp://www.aygfsteel.com/Noah/comments/250562.htmlhttp://www.aygfsteel.com/Noah/articles/250562.html#Feedback7http://www.aygfsteel.com/Noah/comments/commentRss/250562.htmlhttp://www.aygfsteel.com/Noah/services/trackbacks/250562.html1Calendar calendar = Calendar.getInstance();
2        calendar.add(Calendar.DATE, -1);    //得到前一?/span>
3        calendar.add(Calendar.MONTH, -1);    //得到前一个月
4        int year = calendar.get(Calendar.YEAR);
5        int month = calendar.get(Calendar.MONTH)+1 注意月䆾加一

]]>
վ֩ģ壺 | | | | ұ| | | ױ| Է| Ϫ| ʡ| | | | | | | | | | | ƽ| ƽ| Ϻ| | ï| ˶| ˮ| | ͬ| | ƽ| | | | | ̩˳| | п| ƽ| ų|