paulwong

#

工作心得之一 团队

转眼又是一年,也是我工作的第五个年头。一直想抽时间写点这几年的工作心得,但一直没时间,今天难得空闲,可以写点。这几年下来,我担任过很过角色,码农,组长,设计/架构等都有涉及,所以总结也分3部分:团队、业务、技术。今天先说说团队,估计有很多人也有想法,欢迎大家讨论。

俗话说,双全难敌四手,一个人再牛也比不了一个团队。

我在3家公司呆过,有国企也有外企,也和很多朋友聊天谈到不同的企业团队,发现不同企业的团队质量上的差距是很明显的。首先声明,这里仅仅是我对我所知的环境做个比较,并不针对哪些公司,更没有贬低谁的意思。

对于一个人来说,有一个好的团队就好象在社会里有个“家”,如果是一个坏的团队,那么就是一个“坑”。
为了提高开发效率,现在有越来越多的开发模式被提出来了,但是经常有人抱怨说采用敏捷开发模式,效率没一点上升,反而因为制定各种规则导致效率下降很多,提出这种模式的人只会扯淡。我想有这种抱怨的“管理者”应该很多吧,当然更多人都知道开发模式其实是很有效的手段,只是不知道怎么或者什么时候用它。其实老外在这方面觉得挺好,他们的工作流程是这样的,接到某个任务后,会分配到若干人员头上,那么这些人员就成了一个“临时”的团队,如果在大型公司里,这样是很常见的,网上有个词叫“内部外包”制,他们按照“敏捷”的模型/步骤完成任务。这样的团队有个特点是,团队中的人相互不熟悉,但是齐心,采用某些开发模式或者流程可以弥补因为陌生带来的问题,合理的安排每个人都任务,所以起到很好的效果。说到这里我觉得就够了,抱怨“开发模式”无用的团队的特点是,成员之间很熟悉,但是心不齐,这种情况什么模式都没用。不知道多少人有同感。
但是团队怎样才能真正的团结是个问题。这里就把一个团队可以分成底层的员工和上层的领导。
员工是每个人都起点,所以先从员工说起(当然有名爹的除外)。
作为员工,需要什么?
员工所需要的很简单,待遇 、发展平台 和 环境。前两者很好理解。
待遇,很多人明确就是有钱就干,没钱就滚蛋,的确钱很重要,但这个真不是全部,后面细说。
平台,关系到市场等等因素,比较明显,也没什么好说的。
至于环境这个就很抽象了,环境这里也分很多因素,最关键的一个是来自于领导,举个例子来说明,某个项目出了个问题,客户大发雷霆,公司领导屁颠屁颠跑来赔罪,然后很潇洒的在大酒店请客户吃了顿,摆平客户后回头很潇洒的把当事人骂一顿,当事人第二天潇洒的离职,然后就能看见很多人骂街……,估计很多人都有过这样或者看见过这样的场景。这是我觉得中国很多团队的最大问题,领导眼里一切都是“客户”至上,或许有些道理,但是如果把员工放轻了就很是问题。如果把客户看成“金矿”,那么员工就是“矿工”,诚然,客户是给钱的,但是这个过程得通过员工来完成,客户和员工对于“领导”来说应该是同等重要的,公司给客户的形象完全来自员工,绝不是领导请的那几顿饭。再说明白点,就是领导要给予员工起码的尊重,而不是使唤完了就结束,这样才能换来员工的忠诚。

下面说说“钱”的问题,我想说的是,钱不代表一切,钱只能解决一时的问题,但不可能长久,光是提高待遇的结果就是,员工越来越“贪”。
还是举个例子,美国做过实验,让一个人在独立的房间里,和外界无法联系,实验者在里面每呆一天就能获得很多报酬,我想这个实验大家都知道,结果是,没人撑得了1星期。把这个实验抽象一下,把你放在一个团队里,团队里的每个人都看不起你,鄙视你,无论给你多少钱,你也呆不久,当然毅力惊人的财迷除外……
对于一个团队来说,需要给员工一种感觉,“归属感”。说起来很抽象,那么还是举例子,想下我们大学毕业吃散伙饭那会,多少人哭的昏天黑地?那种感觉算是归属感。一起翘课,一起挂科,一起出丑等等等等,才让我们有了归属感。那么回到社会里来,怎么让一个团队有个归属感呢?这里得看“公司”和“领导”的本事了。

先从公司说起吧,这里得说个看似不相干的事。
中国古代有很多团队,比如戏班子,建筑队等,新加入的菜鸟都会有个专门的“师傅”带,这时,师傅不仅仅是传授技艺,还会在思想和情感上教育徒弟,所以古时有“一日为师,终身为父”的说法,这不仅仅是出于师长的尊重,很多时候“师傅”完全承担了“父亲”的角色。现在时代不同了,职场中很难找到推心置腹的人,逐渐演变成了干一份活拿一份钱。没错,看起来很公平,也是从资本主义那里学来的(但是只学了皮毛而已),造成结果就是让员工觉得自己仅仅是个机器,需要的时候租一下,不需要的时候随时给T掉。
其实在任何大企业里,员工在入职时都有员工培训,定期举行teambuilding,workshop,outing(我只在外企里享受过这些活动,具体解释也说不大清楚,简单来说就是游玩组织活动之类的)等,不少企业为了省钱,都免了,其实这些真的很重要。先说说国外的吧(是国外,不是外企在中国的分公司),最常见的方式有, 老板和大家一起喝啤酒,打桌球/高尔夫等。这样就可以创造一个员工相互交流的平台和时间,老板有更多时间来和员工交流,
现在在回想下我们的团队,一年都见不着老板几次面,也没几次聚会,动不动还扣点钱,这样的公司下面肯定是没好团队的,人员流动肯定大。部分大企业有各种活动,但是有的做的不好,比如年会就是包个大场地,大饭店,来几个表演,抽奖,大多数都是这样了吧,我也和同事聊过,感觉就是领导来自娱自乐一把,完全没员工的事,吃饱走人就行(抽奖?恩抽到最好,我是比较背的那种)。有多少领导真的是放下身价真的和员工进行互动?
估计“员工仅仅是个工具,和服务器这类机械没本质区别。”是那些老板的真实想法。

如果公司在大环境下创造不好,下面的团队很难发展好。

说完公司大环境就说说关系到自己的的团队。
任何一个团队都有个“老大”,我是一直这么称呼的,有点黑社会的味道,为什么呢?因为要做好一个领导,还真得和“古惑仔”电影中的“老大”学习。
1、尊重下属。真正的“尊重”才能换来他们的忠诚,当然他们会有不同理由离开团队,但是离开后还能是好朋友(有多少离职后是老死不通音信的?)。在中国(国外不清楚),大多数人(不是全部)都有“土皇帝”的情节,总觉得下属就是自己的“奴隶”,做什么都是应该的。到最后肯定是光杆司令。当然,员工之间也应该相互尊重,但员工间的矛盾对于团队来说是小问题。

2、公平。对于员工来说,公平分两层,一个是在员工之间,有些人和领导熟,承担的任务轻,反之则重,这个就不多说了,都清楚。另一层的公平是在员工和客户之间,有的时候明显是客户的错误,但是为了“效益”硬说成是员工的,或许这样的行为可以换来一时的利益,但是换个位置想想,一个人在你面前只会谄媚,脏水都往自己身上泼,你会瞧的起他么?时间长了客户不把你当人,员工也不把你当人,不知道你自己把自己当什么……

3、合理地护短,直接说清楚比较难,还得举个例子。当客户无论提出什么要求,如果领导都一字不落的转发,对于员工来说,有没有这个领导是没区别的,自然不理你。换个角度,当客户的任务过重时,如果领导能和客户交涉,为员工争取些权益,员工就会有一种“保护伞”的感觉,自然也就会依靠你。当然凡事得适当。

到这里是不是很像黑社会的老大?以上三点对于任何行业的团队都适用。

4、合理的薪资,这个又是焦点话题,老外定义的合理的薪资是基本工资够员工在当前城市生活,但是一定要有合理的奖励体系,有出色表现的时候要按时奖励,这个薪资体系是和销售的薪资构成很像(但细节和落实程度就有很大差别)。奖励体系是国外工资里很重要的一部分,国内虽然有各种绩效考核,结果到头来总是有什么预算不够,人员太多等等废话成了一纸空文。甚至演变成“拼爹”,反正在垄断行业里,出来问题,就T来T去,没爹的孩子就成了临时工。

在老外眼里奖励措施是很重要的,比惩罚措施更重要(中国做法只有责任落实到个人,出了问题一定得找个零时工出来……),为什么说奖励措施很重要呢?再举例子,在众多抱怨中,最多的是“我干了XXX事,他们不管,一时犯困就被罚”或者类似的。不可否认有对丑事选择性遗忘的的因素,但是领导对下属出色表现视而不见,但对错误严厉惩罚的做法是团队最大的“伤害”,这样给员工的感觉就是“干得好和干得一般”没区别,但是“犯错了就肯定会追究”,这样是最消磨员工的积极性和创造性的,所以很多人是做一天和尚撞一天钟。我和两个老外聊过,他们那里如果这个月干得好了,最高奖金是工资的4倍(最高,不是平均,他们所在的公司也是很不错的公司,那里也不是所有企业有这么好的奖励),所以人人会主动找事干,每周一次的聚会都会找老板展露自己的“成果”。国内企业也有奖励制度,但首先那种奖励程度实在不值一提,其次,员工有方便的通道来告诉领导么,领导知道了会重视么?

提高产品的效率、质量必须从团队开始。我见过的最好团队,6个人合作了4年,5个员工+1老大。每次任务下来后,“老大”不需要多废话话,每个人就知道自己负责哪块,老大只需要和客户扯皮,也基本不需要担心哪个人跳槽,员工郁闷了就喊老大去喝啤酒。这个团队也没什么开发模式,更没什么规章制度。

最后,希望大家在新年里都能找到自己的团队。

posted @ 2012-02-13 23:08 paulwong 阅读(235) | 评论 (0)编辑 收藏

管理随笔

项目管理说到底就是人的管理,这是我在项目管理中意识到的几个关注点。

1. 规则制定。 没有规矩,不成方圆,军队没有纪律就是一盘散沙,做项目亦如此。各个公司甚至项目都有自己不同的规则,规则的存在是为了约束成员的行为,鼓励对团队发展有利的行为,减少对团队发展有害的行为。同时规则的制定需要人性化。这里举个例子,我公司并不要求员工按时上班,也无上班打卡。于是项目经理在上班时间在办公室看不到几个人,有些事情想当面跟某成员说都要先跟成员预约时间。项目进度不紧,任务也不重,做的按部就班,并无大的出错。因为很多人不来,经常来的几个人也开始来的少了,这样的规则有无问题?

这样的规则就造成了一个现象:办公室里一个人都没了。同时由于沟通的时间越来越少,项目本来可以做得更好的但是现在只是没有出大的差错而已。懒人更懒,积极上进的人积极性也大受打击,热情降低。本来可以集中办公的,现在变成虚拟团队了。

规则的制定既需要限制成员的自由,又要给成员最大的自由,所有的规则制定的出发点只有一个:团队发展。第一条,对团队发展有坏的影响的规则都不是好规则。然后才是第二条,规则需要人性化。第三,规则的合理有效性。

上面的例子,如果改为: 上班不打卡,但是员工需要每天到公司上班,如果某天因为有事来不了在不影响项目的前提下需要提前一天通知项目经理,一个月不来的次数不能超过5次。早上上班时间可以定为10:00,10点还迟到的次数一个月不能超过10次。不过这需要增加有一个人来记录。



2. 赏罚分明。不论是好规则还是坏规则,有规则就要执行,就会有人经常违反,有人经常遵守,就会有赏有罚。赏罚分明的好处,就是要让大家知道,干得好和干得坏的待遇不一样。比如上面的新的上班规则,如果有人违反了,怎么办?如果是你的得力下属违反了,怎么办?甚至于如果是你自己违反了,怎么办?如果因为你跟某个成员私交很好,就酌情处理,那你的后门以后会被踏平,大家都会来努力跟你搞好关系,项目没人做了。如果拉不下面子,不妨自己故意违反一次,然后按规定处罚自己。

当然,罚只能是一种手段,罚不能常用,应该常用的是赏。项目经理一定要有能力拿到经费,哪怕很少。赏不能自己掏腰包对吧? 总之,做好做坏一定要不一样,而且最好马上就能不一样,而不是体现到年终的绩效考核上,那太远了。


那上面的规则就可以进一步变成: 一个月迟到10次口头警告,团队里面通报。天天天迟到(20次)则通告上级经理,扣季度奖金xxx。一个月不来次数超过5次,口头警告,团队里面通报。一个月不来次数超过10次,则通告上级经理,劝退xxx。一个月无迟到,无缺勤则拿全勤奖,xxxx。

如果有人下午四点钟来,五点钟走,怎么办?呵呵,这样的人很少吧?有也是奇葩,那你就再修订规则吧。

3. 沟通和社交风格,迎合能力。
沟通是个大话题,项目中项目经理75%以上的时间用于沟通。。。

posted @ 2012-02-13 22:25 paulwong 阅读(227) | 评论 (0)编辑 收藏

JBOSS集群安装

软件及环境:
jboss-5.1.0.GA
nginx-0.8.15
centos5.5
nginx:192.168.1.251
tomat1:192.168.1.251
tomat2:192.168.1.252
jboss安装目录为:/usr/local/jboss
nginx安装目录为:/usr/local/nginx

JDK、JBOSS、nginx安装略过!

Jboss1配置:

/opt/jboss4.3/jboss-as/server/node2/deploy/jboss-web.deployer/server.xml

<!--由于在LINUX环境下,会有多个IP,address不能改成${0.0.0.0},这样会对127.0.0.1也会进行监听,导致启动出错-->
<Connector protocol="HTTP/1.1" port="8080" address="${ jboss.bind.address}">

<!--将<Engine name="jboss.web" defaultHost="localhost">修改为-->
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="jboss1">

/opt/jboss4.3/jboss-as/server/node2/deploy/jboss-messaging.sar/messaging-service.xml
<!--将20行的<attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:0}</attribute>修改-->
<attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:1}</attribute>

Jboss2配置:

/opt/jboss4.3/jboss-as/server/node2/deploy/jboss-web.deployer/server.xml

<!--由于在LINUX环境下,会有多个IP,address不能改成${0.0.0.0},这样会对127.0.0.1也会进行监听,导致启动出错-->
<Connector protocol="HTTP/1.1" port="8080" address="${ jboss.bind.address}">

<!--将<Engine name="jboss.web" defaultHost="localhost">修改为-->
<Engine name="jboss.web" defaultHost="localhost" jvmRoute="jboss2">

/opt/jboss4.3/jboss-as/server/node2/deploy/jboss-messaging.sar/messaging-service.xml
<!--将20行的<attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:0}</attribute>修改-->
<attribute name="ServerPeerID">${jboss.messaging.ServerPeerID:2}</attribute>

如果想要session同步的话,要在站点的web.xml里面加入<distributable/>

测试文件index.jsp内容如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
     pageEncoding
="UTF-8"%>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 
<%@page import="java.util.*"%>
 
<%@page import="java.net.InetAddress;"%>
 
<html>
 
<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 
<title>Cluster App Test</title>
 
</head>
 
<body>
 
<%
 InetAddress ip 
= InetAddress.getLocalHost();
 
//out.println(ip.getHostAddress());
 
%>
 This is responsed by 
<font color="red"> <%=ip.getHostAddress() %></font><br>
 Host Name : 
<font color="red"><%=ip.getHostName() %></font><br>
 Time : 
<font color="red"><%=new Date() %></font><br>
 
<%
 ip 
= null;
 
%>
<br/> <br/> <br/> <br/>
Server Info:
<%
out.println(request.getLocalAddr() 
+ " : " + request.getLocalPort()+"<br>");%>
<%
  out.println(
"<br>Session ID " + session.getId()+"<br>");
 
// 如果有新的 Session 属性设置
 
String dataName = request.getParameter("dataName");
 
if (dataName != null && dataName.length() > 0) {
    
String dataValue = request.getParameter("dataValue");
     session.setAttribute(dataName, dataValue);
  }
  out.print(
"<br/> <b>Session 列表</b>");
  Enumeration e 
= session.getAttributeNames();
 
while (e.hasMoreElements()) {
    
String name = (String)e.nextElement();
    
String value = session.getAttribute(name).toString();
     out.println( name 
+ " = " + value+"<br>");
         System.out.println( name 
+ " = " + value);
   }
%>
 
<form action="index.jsp" method="POST">
    名称:
<input type=text size=20 name="dataName">
    
<br>
   
&nbsp;&nbsp;值:<input type=text size=20 name="dataValue">
    
<br>
   
<input type=submit>
  
</form>
 
</body>
 
</html>

Jboss动好像没什么要求,,可以两个同时启动,等启动完之后再启动NGINX就OK了!

Jboss的启动命令为(必须加参数-b ,很多配置文件都依赖于${ jboss.bind.address}这个值,也就是命令行输入的IP地址):
/usr/local/jboss/bin/run.sh -c all -b 192.168.1.251


等都启动完成,就可以防问http://192.168.1.251/cluster-test/

写一个session,刷新,如果session在不同的机器上保持不变,那就集成功了!如下图:

posted @ 2012-02-13 16:18 paulwong 阅读(1971) | 评论 (0)编辑 收藏

jboss中控制台jmx-console 登录的用户名和密码设置

默认情况访问 http://localhost:8080/jmx-console 就可以浏览jboss的部署管理的一些信息,不需要输入用户名和密码,使用起来有点安全隐患。下面我们针对此问题对jboss进行配置,使得访问jmx- console也必须要知道用户名和密码才可进去访问。步骤如下:

i) 找到JBoss安装目录/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml文 件,去掉<security-domain>java:/jaas/jmx-console</security- domain>的注释。修改后的该文件内容为:

<jboss-web>
   
<!-- Uncomment the security-domain to enable security. You will
      need to edit the htmladaptor login configuration to setup the
      login modules used to authentication users.
-->
      
<security-domain>java:/jaas/jmx-console</security-domain>
</jboss-web>


ii)修改与i)中的jboss-web.xml同级目录下的web.xml文件,查找到<security-constraint/>节点,去掉它的注释,修改后该部分内容为:

<!-- A security constraint that restricts access to the HTML JMX console
   to users with the role JBossAdmin. Edit the roles to what you want and
   uncomment the WEB-INF/jboss-web.xml/security-domain element to enable
   secured access to the HTML JMX console.
-->
   
<security-constraint>
     
<web-resource-collection>
       
<web-resource-name>HtmlAdaptor</web-resource-name>
       
<description>An example security config that only allows users with the
         role JBossAdmin to access the HTML JMX console web application
       
</description>
       
<url-pattern>/*</url-pattern>
       
<http-method>GET</http-method>
       
<http-method>POST</http-method>
     
</web-resource-collection>
     
<auth-constraint>
       
<role-name>JBossAdmin</role-name>
     
</auth-constraint>
   
</security-constraint>

   在此处可以看出,为登录配置了角色JBossAdmin。

iii) 在第一步中的jmx-console安全域和第二步中的运行角色JBossAdmin都是在login-config.xml中配置,我们在JBoss安 装目录/server/default/conf下找到它。查找名字为:jmx-console的application-policy:

<application-policy name = "jmx-console">
       
<authentication>
          
<login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
             flag 
= "required">
           
<module-option name="usersProperties">props/jmx-console-users.properties</module-option>
           
<module-option name="rolesProperties">props/jmx-console-roles.properties</module-option>
          
</login-module>
       
</authentication>
    
</application-policy>


在此处可以看出,登录的角色、用户等的信息分别在props目录下的jmx-console-roles.properties和jmx-console-users.properties文件中设置,分别打开这两个文件。
其中jmx-console-users.properties文件的内容如下:

# A sample users.properties file for use with the UsersRolesLoginModule
admin
=admin

该文件定义的格式为:用户名=密码,在该文件中,默认定义了一个用户名为admin,密码也为admin的用户,读者可将其改成所需的用户名和密码。
jmx-console-roles.properties的内容如下:

# A sample roles.properties file for use with the UsersRolesLoginModule
admin
=JBossAdmin, HttpInvoker

该文件定义的格式为:用户名=角色,多个角色以“,”隔开,该文件默认为admin用户定义了JBossAdmin和HttpInvoker这两个角色。
配置完成后读者可以通过访问: http://localhost:8088/jmx-console/ ,输入jmx-console-roles.properties文件中定义的用户名和密码,访问jmx-console的页面。

posted @ 2012-02-13 11:04 paulwong 阅读(9523) | 评论 (0)编辑 收藏

一个完整的JENKINS下的ANT BUILD.XML文件

     摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?xml version="1.0" encoding="UTF-8"?><project name="genwar" default="all...  阅读全文

posted @ 2012-02-08 18:40 paulwong 阅读(5714) | 评论 (1)编辑 收藏

Linux SHELL环境初始化顺序总结

以ubuntu server 11.10 为例,

1) 当服务器启动时,SHELL环境的初始化过程如下:

/etc/environment –> /etc/default/ 中的配置脚本

2)当一个用户登录SHELL的时候

/etc/profile --> $HOME/.profile

如果是BASH SHELL , 则是

/etc/profile –> /etc/bash.bashrc --> $HOME/.profile --> $HOME/.bashrc

3) 如果一个用户打开一个BASH SHELL 或 使用su 切换用户身份时, 则

/etc/bash.bashrc –> $HOME/.bashrc

其中:

/etc/environment 设置全局环境变量, 重启服务器生效

/etc/default/目录中的配置脚本 设置特定的全局环境变量

/etc/profile 当用户重新登录时,该文件被执行. 并依次调用/etc/profile.d目录中的所有脚本。如果是初始化BASH SHELL , 还会调用/etc/bash.bashrc

/etc/bash.bashrc 每次启动一个BASH SHELL时都会执行该脚本

$HOME/.profile 作用等同/etc/profile

$HOME/.bashrc 作用等同/etc/bash.bashrc

$HOME/.bash_logout 当每次退出SHELL环境时被执行

posted @ 2012-02-08 13:00 paulwong 阅读(602) | 评论 (0)编辑 收藏

JENKINS使用步骤

从代码仓库获取代码用SVN,做单元测试用JUNIT,做代码检查用PMD、FINDBUGS,代码编译、打包用ANT,拷贝文件到部署服务器上用SHELL,出现BUG了通知开发人员要发EMAIL,工具一多了,整合起来用时,不断切换界面,输入命令的复杂性可想而知,有没有一站式的工具可以代劳呢?

有,这就是JENKINS,有了她,你就可以:通过统一的WEB界面做各种配置工作、查看工具的LOG输出、即使是历史的日志查看也没问题;通知配置排程,可以自动的获取代码、编译、打包和部署,发邮件,无须人工干预。
  1. 安装JENKINS,其实就是把一个WAR包放到容器中
  2. 安装插件:发邮件插件Jenkins Email Extension Plugin和部署插件Deploy to container Plugin
  3. 配置JDK和邮件服务器地址
  4. 新建任务:配置SVN地址/配置构建排程@hourly/配置构建步骤,如先用ANT编译打包再传到服务器/配置成功或失败后发邮件通知的地址
  5. 手动执行任务或等待时间到了后执行任务
各种插件的安装
  1. ANT:如果在JENKINS中使用了ANT-JUNIT,由于JENKINS是直接调用操作系统的ANT命令的,所以要在LINUX下安装ANT,配置ANT_HOME,并将BIN加入到PATH中:
    ANT_HOME=/opt/ant/apache-ant-1.8.2
    JAVA_HOME
    =/usr/java/jdk1.6.0_29
    JRE_HOME
    =/usr/java/jdk1.6.0_29/jre
    PATH
    =$ANT_HOME/bin:$JAVA_HOME/bin:JRE_HOME/bin:$PATH 
    CLASSPATH
    =.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    export ANT_HOME JAVA_HOME JRE_HOME PATH CLASSPATH

http://hanqunfeng.iteye.com/category/138233

posted @ 2012-01-31 18:19 paulwong 阅读(8724) | 评论 (0)编辑 收藏

JAAS安全术语

在JAAS的体系中,有些安全的术语,不深入了解,会弄得一头雾水,现作一小结:
  1. Subject:相当于普通系统中的“当前用户” ,可以从这里取得角色之类的信息,里面还含有一个MANAGER类,可以查数据库,如subject.login(...)就是查数据库是否匹配密码
  2. Principal:相当于用户名信息
  3. Credential:相当于密码或密钥等信息
  4. Realm:加在DAO层外面的一个ADAPTER,统一调用数据库的方法名
  5. SecurityManager:权限服务的统一入口,里面会调用Realm

posted @ 2012-01-30 23:20 paulwong 阅读(394) | 评论 (0)编辑 收藏

使用Eclipse构建Maven的SpringMVC项目

http://limingnihao.iteye.com/blog/830409

posted @ 2012-01-29 23:27 paulwong 阅读(2291) | 评论 (0)编辑 收藏

安全认证框架-Apache Shiro研究心得

     摘要: 最近因为项目需要,研究了一下Apache Shiro安全认证框架,把心得记录下来。(原创by:西风吹雨) Apache Shrio是一个安全认证框架,和Spring Security相比,在于他使用了和比较简洁易懂的认证和授权方式。其提供的native-session(即把用户认证后的授权信息保存在其自身提供Session中)机制,这样就可以和HttpSession、EJB Session Bea...  阅读全文

posted @ 2012-01-28 16:07 paulwong 阅读(18920) | 评论 (0)编辑 收藏

仅列出标题
共110页: First 上一页 84 85 86 87 88 89 90 91 92 下一页 Last