如何shiro中shiro principal if属性的属性

求助攻!shiro中的session管理【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:667,075贴子:
求助攻!shiro中的session管理收藏
Subject subject = SecurityUtils.getSubject();AuthenticationToken authenticationToken = new
UsernamePasswordToken(user.getUsername(),
user.getPassword());//--这一步认证里,authenticationToken被放入了session的哪个属性里?subject.login(authenticationToken);
兄弟连教育&拉勾网强强联合打造JavaEE.战狼班,Java培训后付费非贷款,入学兄弟连java战狼班,拉勾网战略合作,高起点出Java精英.
//--这一步认证里,authenticationToken被放入了session的哪个属性里?
subject.login(authenticationToken);
没怎么用过shiro的表示username在subject的principal里password在subject的credential里然而并不知道在session的哪里
你看下源码。就明白了!!
登录百度帐号推荐应用使用shiro标签遇到的部分问题的解决思路
时间: 12:24:37
&&&& 阅读:831
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&最近几天,在shiro进行系统权限控制。在处理JSP页面的时候,遇到几个问题,纠结好几天,终于成功解决这些问题。
1、使用&shiro:principal&的时候,如何得到整个类的信息?
& & &由于之前,在编写Realm的时候,习惯性的把用户登录名放进SimpleAuthenticationInfo类中,进行返回。当然了,使用&shiro:principal&的时候,就只能得到用户的登录名。其实,使用&shiro:principal&,效果和SecurityUtils.getSubject().getPrincipal()一致。
& & &后面,修改代码,在返回SimpleAuthenticationInfo的时候,传递进整个User类对象。然后,就能够得到整个登录用户的全部信息。
& & &代码:
protected AuthenticationInfo doGetAuthenticationInfo(
AuthenticationToken token) throws AuthenticationException {
String userName = (String)token.getPrincipal();
User user = userDao.searchPasswordThroughLoginName(userName);
if(user == null) {
throw new UnknownAccountException("登录名" + userName + "不存在!");
SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(user, user.getU_password(), getName());
info.setCredentialsSalt(ByteSource.Util.bytes(user.getU_salt()));
2、User对象中还有其他的类对象,在jsp页面中,如何通过&shiro:principal&得到相关信息?
public class User {
private String u_
//用户登录时所需信息
private String u_loginN
private String u_
private String u_
//个人信息
private String u_
private Date u_bornD
private String u_
private String u_
private String u_
private CompanyDepartment u_
private CompanyPosition u_
//省略getter和setter方法
& &&&shiro:principal&中,含有一个property的属性。对于类似于u_id、u_loginName等信息可以通过&shiro:principal property="u_id"/&的形式,来获取该属性的值。那么,类似于CompanyDepartment类,如果想要获取该类中的cd_id,能不能通过&shiro:principal property="u_cd.cd_id"/&形式,获取得到User类下的CompanyDepartment类的cd_id属性的值呢?
& & & 答案是不可以的。因为系统报错,提示在User类中,找不到u_cd.id的属性。那么,c_id、c_loginName等信息如何能够通过&shiro:principal property="xxx"/&形式获取得到?其实,就是根据,User类中相关的getter方法取出相应的值。那么,只需要提供一个对应的get方法就可以实现这个目的。
public String getCdId() {
return this.u_cd.getCd_id();
然后,使用&shiro:principal property="cdId"/&,就能够获取User类下的CompanyDepartment类的cd_id属性的值。(方法名的命名规范,最好遵循JavaBean的命名规范。)
3、使用&shiro:principal property="cdId"/&进行判断的时候,系统提示EL表达式语法错误,如何解决?
& & 通过第二步,能够成功获取User中相关属性的值,那么,如果在User类中添加一个u_type属性,用于对用户类型进行判断,使用下面的jsp代码进行判断:
&c:if test="${&shiro:principal property="u_type"/& == ‘master‘ }"&
系统报错,提出出现EL表达式语法错误。但是&shiro:principal property="u_type"/&能够拿出User类中的u_type属性的值。在这个过程中,纠结了很长时间,也没有解决这个问题。最后,退一步,加上这个判断,仅仅是为了判断登录用户的类型。那么,这个类型,可以在控制层中取出,并传回到前端JSP页面中,然后进行判断,就可以绕开这个问题。
@RequestMapping(value="login" , method=RequestMethod.GET)
public String login(@ModelAttribute("user")User user , Model model) {
* 如果当前用户已经登录,则不需要直接再次进行登录操作
User loginUser = ShiroUtils.getLoginUser();
if(loginUser != null) {
String type = ((User)SecurityUtils.getSubject().getPrincipal()).getU_type();
model.addAttribute("userType", "master".equals(type) || "dupty".equals(type));
return "sys/systemLogin/index";
return "sys/systemLogin/login";
然后在jsp页面处:
&c:if test="${userType == true }"&
就能够成功实现类型判断。
好了,上面就是最近几天遇到的一些问题,纠结了好几天,才解决这些问题。如果各位大侠有更改的解决办法,请不吝赐教。标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!深入浅出学Shiro(一)--登录认证
ApacheShiro是一个强大易用的安全框架,提供了认证、授权、和会话管理等功能:
Shiro为解决下列问题,提供了保护应用的API:
  认证 - 用户身份识别,常被称为用户&登录&;
  授权 - 访问控制;
  密码加密 - 保护或隐藏数据防止被偷窥;
  会话管理 - 每用户相关的时间敏感的状态。
对于任何一个应用程序,Shiro都可以提供全面的安全管理服务。并且相对于其他安全框架,Shiro要简单的多。
核心概念:Subject,SecurityManager和Realms
&当前操作用户&。但是,在Shiro中,Subject这一概念并不仅仅指人,也可以是第三方进程、后台帐户(DaemonAccount)或其他类似事物。它仅仅意味着&当前跟软件交互的东西&。但考虑到大多数目的和用途,你可以把它认为是Shiro的&用户&概念。
Subject代表了当前用户的安全操作,SecurityManager则管理所有用户的安全操作。
SecurityManager
  它是Shiro框架的核心,典型的Facade模式,Shiro通过SecurityManager来管理内部实例,并通过它来提供安全管理的各种服务。
  Realm充当了Shiro与应用安全数据间的&桥梁&或者&连接器&。也就是说,当切实与像用户帐户这类安全相关数据进行交互,执行认证(登录)和授权(访问控制)时,Shiro会从应用配置的Realm中查找很多内容。
  从这个意义上讲,Realm实质上是一个安全相关的DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给Shiro。当配置Shiro时,你必须至少指定一个Realm,用于认证和(或)授权。配置多个Realm是可以的,但是至少需要一个。
认证流程:
1、应用程序构建了一个终端用户认证信息的AuthenticationToken实例后,调用Subject.login方法。
2、Sbuject会委托应用程序设置的securityManager实例调用securityManager.login(token)方法。
3、SecurityManager接受到token(令牌)信息后会委托内置的Authenticator的实例(通常都是ModularRealmAuthenticator类的实例)调用authenticator.authenticate(token).ModularRealmAuthenticator在认证过程中会对设置的一个或多个Realm实例进行适配,它实际上为Shiro提供了一个可拔插的认证机制。
4、如果在应用程序中配置了多个Realm,ModularRealmAuthenticator会根据配置的AuthenticationStrategy(认证策略)来进行多Realm的认证过程。在Realm被调用后,AuthenticationStrategy将对每一个Realm的结果作出响应。
注:如果应用程序中仅配置了一个Realm,Realm将被直接调用而无需再配置认证策略。
5、Realm将调用getAuthenticationInfo(token);getAuthenticationInfo方法就是实际认证处理,我们通过覆盖Realm的doGetAuthenticationInfo方法来编写我们自定义的认证处理。
下面结合一个实例来理解以上这些概念(结合SpringMVC):
Web.xml中添加 Shiro Filter
contextConfigLocation
classpath:applicationContext.xml,classpath:spring-shiro.xml
shiroFilter
org.springframework.web.filter.DelegatingFilterProxy
targetFilterLifecycle
shiroFilter
shiroFilter
spring-m.xml
spring-shiro.xml
Shiro 配置
/login.jsp* = anon
/login.do* = anon
/index.jsp*= anon
/error/noperms.jsp*= anon
/*.jsp* = authc
/*.do* = authc
自定义RealmMonitorRealm
@Service(&monitorRealm&)
public class MonitorRealm extends AuthorizingRealm {
//获取身份验证相关信息
protected AuthenticationInfo doGetAuthenticationInfo(
AuthenticationToken authcToken) throws AuthenticationException {
/* 这里编写登陆认证代码 */
UsernamePasswordToken token = (UsernamePasswordToken) authcT
User user = userService.get(token.getUsername());
User user = new User();
user.setUserName(&admin&);
user.setPassword(EncryptUtils.encryptMD5(&admin&));
return new SimpleAuthenticationInfo(user.getUserName(),
user.getPassword(), getName());
/* //令牌&&基于用户名和密码的令牌
UsernamePasswordToken token = (UsernamePasswordToken) authcT
//令牌中可以取出用户名密码
String accountName = token.getUsername();
// 此处无需比对,比对的逻辑Shiro会做,我们只需返回一个和令牌相关的正确的验证信息,因此在随后的登录页面上只有admin/admin123才能通过验证
return new SimpleAuthenticationInfo(&admin&,&admin123&,getName());
LoginController
@Controller
@RequestMapping(value = &login&)
public class LoginController {
* 用户登录
* @param user
 登录用户
@RequestMapping(params = &main&)
public ModelAndView login(User user,HttpSession session, HttpServletRequest request) {
ModelAndView modelView = new ModelAndView();
/*就是代表当前的用户。*/
Subject currentUser = SecurityUtils.getSubject();
//获取基于用户名和密码的令牌
//这里的token大家叫他令牌,也就相当于一张表格,你要去验证,你就得填个表,里面写好用户名密码,交给公安局的同志给你验证。
UsernamePasswordToken token = new UsernamePasswordToken(
user.getUserName(), EncryptUtils.encryptMD5(user.getPassword()));
/*UsernamePasswordToken token = new UsernamePasswordToken(
user.getUserName(), user.getPassword());*/
但是,&已记住&和&已认证&是有区别的:
已记住的用户仅仅是非匿名用户,你可以通过subject.getPrincipals()获取用户信息。但是它并非是完全认证通过的用户,当你访问需要认证用户的功能时,你仍然需要重新提交认证信息。
这一区别可以参考亚马逊网站,网站会默认记住登录的用户,再次访问网站时,对于非敏感的页面功能,页面上会显示记住的用户信息,但是当你访问网站账户信息时仍然需要再次进行登录认证。
token.setRememberMe(true);
//这句是提交申请,验证能不能通过,也就是交给公安局同志了。这里会回调reaml里的一个方法
// 回调doGetAuthenticationInfo,进行认证
currentUser.login(token);
} catch (AuthenticationException e) {
modelView.addObject(&message&, &login errors&);
modelView.setViewName(&/login&);
e.printStackTrace();
return modelV
//验证是否通过
if(currentUser.isAuthenticated()){
user.setUserName(&张三&);
session.setAttribute(&userinfo&, user);
modelView.setViewName(&/main&);
modelView.addObject(&message&, &login errors&);
modelView.setViewName(&/login&);
return modelV
附:currentUser.login(token);的方法调用,调用到Subjectsubject = securityManager.login(this, token);方法后,则跳转到自定义Realm中
public void login(AuthenticationToken token) throws AuthenticationException {
clearRunAsIdentitiesInternal();
Subject subject = securityManager.login(this, token);
PrincipalC
String host =
if (subject instanceof DelegatingSubject) {
DelegatingSubject delegating = (DelegatingSubject)
//we have to do this in case there are assumed identities - we don't want to lose the 'real' principals:
principals = delegating.
host = delegating.
principals = subject.getPrincipals();
if (principals == null || principals.isEmpty()) {
String msg = &Principals returned from securityManager.login( token ) returned a null or & +
&empty value.
This value must be non null and populated with one or more elements.&;
throw new IllegalStateException(msg);
this.principals =
this.authenticated =
if (token instanceof HostAuthenticationToken) {
host = ((HostAuthenticationToken) token).getHost();
if (host != null) {
this.host =
Session session = subject.getSession(false);
if (session != null) {
this.session = decorate(session);
this.session =
以上是一个简单的Shiro的登录认证过程,其实这部分功能也就是帮助我们验证此用户是否能登录本,和我们普通的登录完成的是同样的功能,Shiro是帮我们封装了这部分内容,让我们无需将登录的验证均写到程序中,而是使用配置的方式,更加灵活的应对变化,符合我们所说的OCP原则。>> ShiroPrincipal.java
ShiroPrincipal.java ( 文件浏览 )
package com.snakerflow.framework.security.
import java.io.S
import java.util.ArrayL
import java.util.L
import com.snakerflow.framework.security.entity.U
* 自定义认证主体
* @author yuqs
* @since 0.1
public class ShiroPrincipal implements Serializable {
private static final long serialVersionUID = 4555722L;
//用户对象
//用户权限列表
private List&String& authorities = new ArrayList&String&();
//用户角色列表
private List&String& roles = new ArrayList&String&();
//是否已授权。如果已授权,则不需要再从数据库中获取权限信息,减少数据库访问
//这里会导致修改权限时,需要重新登录方可有效
private boolean isAuthorized =
* 构造函数,参数为User对象
* 根据User对象属性,赋值给Principal相应的属性上
* @param user
public ShiroPrincipal(User user) {
this.user =
public List&String& getAuthorities() {
public void setAuthorities(List&String& authorities) {
this.authorities =
public List&String& getRoles() {
public void setRoles(List&String& roles) {
this.roles =
public boolean isAuthorized() {
return isA
public void setAuthorized(boolean isAuthorized) {
this.isAuthorized = isA
public User getUser() {
public void setUser(User user) {
this.user =
public String getUsername() {
return this.user.getUsername();
public Long getId() {
return this.user.getId();
* &shiro:principal/&标签显示中文名称
public String toString() {
return this.user.getFullname();
展开> <收缩
下载源码到电脑,阅读使用更方便
还剩0行未阅读,继续阅读 ▼
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
.gitignore105.00 B 08:19
LICENSE10.01 kB 08:19
10.78 kB 08:19
275.00 B 08:19
1.17 kB 08:19
2.39 kB 08:19
1.51 kB 08:19
3.44 kB 08:19
1.45 kB 08:19
1.45 kB 08:19
2.66 kB 08:19
3.55 kB 08:19
4.06 kB 08:19
4.56 kB 08:19
5.58 kB 08:19
362.00 B 08:19
347.00 B 08:19
337.00 B 08:19
1.49 kB 08:19
747.00 B 08:19
1.60 kB 08:19
1.66 kB 08:19
1.91 kB 08:19
3.10 kB 08:19
10.53 kB 08:19
4.06 kB 08:19
7.60 kB 08:19
1.06 kB 08:19
8.89 kB 08:19
970.00 B 08:19
1.19 kB 08:19
1.79 kB 08:19
429.00 B 08:19
697.00 B 08:19
1.65 kB 08:19
2.11 kB 08:19
5.20 kB 08:19
9.15 kB 08:19
8.53 kB 08:19
2.84 kB 08:19
7.50 kB 08:19
1.85 kB 08:19
5.42 kB 08:19
4.77 kB 08:19
10.85 kB 08:19
10.84 kB 08:19
357.00 B 08:19
342.00 B 08:19
339.00 B 08:19
354.00 B 08:19
342.00 B 08:19
342.00 B 08:19
2.53 kB 08:19
2.17 kB 08:19
2.64 kB 08:19
1.99 kB 08:19
2.04 kB 08:19
747.00 B 08:19
1.24 kB 08:19
3.88 kB 08:19
1.73 kB 08:19
3.42 kB 08:19
1.54 kB 08:19
3.13 kB 08:19
1.65 kB 08:19
2.60 kB 08:19
4.17 kB 08:19
4.70 kB 08:19
2.89 kB 08:19
1.74 kB 08:19
2.10 kB 08:19
3.82 kB 08:19
2.16 kB 08:19
3.07 kB 08:19
3.03 kB 08:19
3.18 kB 08:19
3.72 kB 08:19
1.64 kB 08:19
3.84 kB 08:19
2.33 kB 08:19
1.09 kB 08:19
2.66 kB 08:19
2.62 kB 08:19
7.19 kB 08:19
5.44 kB 08:19
325.00 B 08:19
1.76 kB 08:19
application.properties604.00 B 08:19
2.50 kB 08:19
1.81 kB 08:19
1.89 kB 08:19
5.65 kB 08:19
22.05 kB 08:19
12.10 kB 08:19
23.11 kB 08:19
4.85 kB 08:19
12.09 kB 08:19
5.11 kB 08:19
borrow.snaker1.76 kB 08:19
leave.snaker1.98 kB 08:19
log4j.properties575.00 B 08:19
snaker.properties71.00 B 08:19
439.00 B 08:19
ddl.httl939.00 B 08:19
ddl.httl959.00 B 08:19
ddl.httl937.00 B 08:19
template.httl1.08 kB 08:19
MANIFEST.MF36.00 B 08:19
5.79 kB 08:19
3.42 kB 08:19
2.02 kB 08:19
2.40 kB 08:19
1.96 kB 08:19
15.13 kB 08:19
2.08 kB 08:19
4.12 kB 08:19
1.42 kB 08:19
2.07 kB 08:19
1.73 kB 08:19
2.14 kB 08:19
1.53 kB 08:19
2.81 kB 08:19
1.77 kB 08:19
1.81 kB 08:19
1.40 kB 08:19
3.26 kB 08:19
1.42 kB 08:19
3.24 kB 08:19
3.65 kB 08:19
1.92 kB 08:19
2.63 kB 08:19
2.98 kB 08:19
3.58 kB 08:19
1.27 kB 08:19
2.91 kB 08:19
3.56 kB 08:19
1.44 kB 08:19
2.85 kB 08:19
3.07 kB 08:19
1.40 kB 08:19
3.01 kB 08:19
3.57 kB 08:19
1.73 kB 08:19
5.10 kB 08:19
3.64 kB 08:19
1.96 kB 08:19
2.63 kB 08:19
7.97 kB 08:19
2.67 kB 08:19
2.69 kB 08:19
3.21 kB 08:19
1.87 kB 08:19
1.71 kB 08:19
2.29 kB 08:19
2.30 kB 08:19
2.88 kB 08:19
1.52 kB 08:19
3.70 kB 08:19
2.44 kB 08:19
3.93 kB 08:19
3.97 kB 08:19
2.90 kB 08:19
3.31 kB 08:19
1.72 kB 08:19
879.00 B 08:19
1.52 kB 08:19
1.14 kB 08:19
3.16 kB 08:19
948.00 B 08:19
framework.tld2.24 kB 08:19
3.07 kB 08:19
494.00 B 08:19
377.00 B 08:19
399.00 B 08:19
2.42 kB 08:19
2.11 kB 08:19
2.88 kB 08:19
3.03 kB 08:19
2.11 kB 08:19
2.28 kB 08:19
3.03 kB 08:19
3.05 kB 08:19
209.00 B 08:19
322.00 B 08:19
143.00 B 08:19
1.32 kB 08:19
1.98 kB 08:19
1.79 kB 08:19
1.62 kB 08:19
5.53 kB 08:19
sample.png19.35 kB 08:19
s.png35.01 kB 08:19
ui-bg_flat_0_aaaaaa_40x100.png180.00 B 08:19
ui-bg_flat_55_fbec88_40x100.png182.00 B 08:19
ui-bg_glass_75_d0e5f5_1x400.png124.00 B 08:19
ui-bg_glass_85_dfeffc_1x400.png123.00 B 08:19
ui-bg_glass_95_fef1ec_1x400.png119.00 B 08:19
ui-bg_gloss-wave_55_5c9ccc_500x100.png3.38 kB 08:19
ui-bg_inset-hard_100_f5f8f9_1x100.png104.00 B 08:19
ui-bg_inset-hard_100_fcfdfd_1x100.png88.00 B 08:19
ui-icons_217bc0_256x240.png4.27 kB 08:19
ui-icons_2e83ff_256x240.png4.27 kB 08:19
ui-icons_469bdd_256x240.png4.27 kB 08:19
ui-icons_6da8d5_256x240.png4.27 kB 08:19
ui-icons_cd0a0a_256x240.png4.27 kB 08:19
ui-icons_d8e7f3_256x240.png4.27 kB 08:19
ui-icons_f9bd01_256x240.png4.27 kB 08:19
33.49 kB 08:19
164.00 B 08:19
203.81 kB 08:19
16.15 kB 08:19
10.75 kB 08:19
89.20 kB 08:19
1.31 kB 08:19
8.15 kB 08:19
20.93 kB 08:19
212.00 B 08:19
631.00 B 08:19
1.05 kB 08:19
1.05 kB 08:19
167.00 B 08:19
datePicker.gif1.02 kB 08:19
3.40 kB 08:19
img.gif1.54 kB 08:19
bg.jpg307.00 B 08:19
3.59 kB 08:19
img.gif1.64 kB 08:19
21.24 kB 08:19
16.17 kB 08:19
121.31 kB 08:19
100.89 kB 08:19
glyphicons-halflings-white.png8.57 kB 08:19
glyphicons-halflings.png12.50 kB 08:19
57.14 kB 08:19
30.86 kB 08:19
4.77 kB 08:19
1.68 kB 08:19
8.52 kB 08:19
1.62 kB 08:19
1.67 kB 08:19
9.58 kB 08:19
add.png733.00 B 08:19
admin_public.png80.55 kB 08:19
admin_repeat_x.png2.90 kB 08:19
aqtc.png1.69 kB 08:19
arrow.png675.00 B 08:19
arrow_turn_left.png516.00 B 08:19
arrow_undo.png631.00 B 08:19
bg.jpg49.61 kB 08:19
button_100px.gif1.27 kB 08:19
button_38px.gif785.00 B 08:19
button_70px.gif1.04 kB 08:19
button_gray38px.gif291.00 B 08:19
button_gray70px.gif352.00 B 08:19
bz.png1.68 kB 08:19
clock.png882.00 B 08:19
close.jpg454.00 B 08:19
config.png865.00 B 08:19
config_add.png814.00 B 08:19
delete.png655.00 B 08:19
designer.png807.00 B 08:19
edit.png618.00 B 08:19
field_attachment.gif289.00 B 08:19
field_check.png1.56 kB 08:19
field_date.png626.00 B 08:19
field_department.png492.00 B 08:19
field_editor.png703.00 B 08:19
field_radio.png314.00 B 08:19
field_select.png344.00 B 08:19
field_table.png566.00 B 08:19
field_textarea.gif276.00 B 08:19
field_textfield.png273.00 B 08:19
field_user.png741.00 B 08:19
flag_read.png672.00 B 08:19
flow-start.png891.00 B 08:19
flowclose.gif863.00 B 08:19
flowopen.gif863.00 B 08:19
save.png695.00 B 08:19
form_edit.png714.00 B 08:19
formedit.png807.00 B 08:19
goto.png685.00 B 08:19
headerbg.gif149.00 B 08:19
home.png1.45 kB 08:19
logo.png1.65 kB 08:19
logout.png610.00 B 08:19
modpwd.png1.48 kB 08:19
open.jpg440.00 B 08:19
picture_link.png830.00 B 08:19
select.png883.00 B 08:19
snaker.png12.71 kB 08:19
sorting-asc.png1,016.00 B 08:19
sorting-desc.png1,021.00 B 08:19
sorting.png1.07 kB 08:19
switch_left.gif70.00 B 08:19
switch_right.gif70.00 B 08:19
top_bg.jpg15.48 kB 08:19
user.png748.00 B 08:19
view.png692.00 B 08:19
259.82 kB 08:19
91.44 kB 08:19
ui-bg_flat_0_aaaaaa_40x100.png180.00 B 08:19
ui-bg_flat_75_ffffff_40x100.png178.00 B 08:19
ui-bg_glass_55_fbf9ee_1x400.png120.00 B 08:19
ui-bg_glass_65_ffffff_1x400.png105.00 B 08:19
ui-bg_glass_75_dadada_1x400.png111.00 B 08:19
ui-bg_glass_75_e6e6e6_1x400.png110.00 B 08:19
ui-bg_glass_95_fef1ec_1x400.png119.00 B 08:19
ui-bg_highlight-soft_75_cccccc_1x100.png101.00 B 08:19
ui-icons_x240.png4.27 kB 08:19
ui-icons_2e83ff_256x240.png4.27 kB 08:19
ui-icons_x240.png4.27 kB 08:19
ui-icons_x240.png4.27 kB 08:19
ui-icons_cd0a0a_256x240.png4.27 kB 08:19
33.16 kB 08:19
30.46 kB 08:19
70.48 kB 08:19
197.46 kB 08:19
191.97 kB 08:19
83.26 kB 08:19
58.88 kB 08:19
2.05 kB 08:19
1.95 kB 08:19
15.80 kB 08:19
1.80 kB 08:19
Thumbs.db33.00 kB 08:19
delete.gif351.00 B 08:19
end_event_cancel.png597.00 B 08:19
end_event_error.png680.00 B 08:19
end_event_terminate.png590.00 B 08:19
event.gif952.00 B 08:19
events_multiple.gif981.00 B 08:19
flow_sequence.png270.00 B 08:19
gateway_exclusive.png3.64 kB 08:19
gateway_parallel.png3.65 kB 08:19
new_event_listener.gif974.00 B 08:19
new_swimlane.gif338.00 B 08:19
new_timer.gif945.00 B 08:19
node_elements_multiple.gif361.00 B 08:19
start_event_empty.png688.00 B 08:19
swimlane.gif895.00 B 08:19
swimlanes_multiple.gif952.00 B 08:19
task_empty.png1.02 kB 08:19
task_hql.png391.00 B 08:19
task_java.png361.00 B 08:19
task_sql.png463.00 B 08:19
task_wait.png420.00 B 08:19
timer.gif924.00 B 08:19
timers_multiple.gif924.00 B 08:19
transitions_multiple.gif870.00 B 08:19
Thumbs.db7.50 kB 08:19
end_event_cancel.png1.37 kB 08:19
end_event_error.png1.39 kB 08:19
end_event_terminate.png1.32 kB 08:19
flow_sequence.png596.00 B 08:19
gateway_exclusive.png4.29 kB 08:19
gateway_parallel.png1.21 kB 08:19
start_event_empty.png1.86 kB 08:19
task_empty.png1.34 kB 08:19
task_hql.png976.00 B 08:19
task_java.png1.53 kB 08:19
task_sql.png1.35 kB 08:19
task_wait.png1.18 kB 08:19
bg.png296.00 B 08:19
save.gif187.00 B 08:19
select16.gif336.00 B 08:19
47.19 kB 08:19
26.30 kB 08:19
81.90 kB 08:19
2.47 kB 08:19
1.64 kB 08:19
8.80 kB 08:19
940.00 B 08:19
1.31 kB 08:19
checked.gif220.00 B 08:19
unchecked.gif223.00 B 08:19
232.00 B 08:19
24.77 kB 08:19
20.57 kB 08:19
1.06 kB 08:19
1.55 kB 08:19
14.05 kB 08:19
2.26 kB 08:19
29.35 kB 08:19
icon_chm.gif923.00 B 08:19
icon_default.png841.00 B 08:19
icon_doc.gif1,012.00 B 08:19
icon_exe.gif949.00 B 08:19
icon_jpg.gif950.00 B 08:19
icon_mp3.gif986.00 B 08:19
icon_mv.gif1,001.00 B 08:19
icon_pdf.gif996.00 B 08:19
icon_ppt.gif1,001.00 B 08:19
icon_psd.gif1,009.00 B 08:19
icon_rar.gif1,007.00 B 08:19
icon_txt.gif970.00 B 08:19
icon_xls.gif1,005.00 B 08:19
alignicon.gif1.03 kB 08:19
alignicon.png3.63 kB 08:19
bg.png2.74 kB 08:19
file-icons.gif19.63 kB 08:19
file-icons.png43.04 kB 08:19
icons.gif453.00 B 08:19
icons.png2.62 kB 08:19
image.png1.63 kB 08:19
progress.png1.24 kB 08:19
success.gif445.00 B 08:19
success.png1.58 kB 08:19
2.34 kB 08:19
2.83 kB 08:19
14.04 kB 08:19
bg.png2.74 kB 08:19
success.png1.58 kB 08:19
1.38 kB 08:19
2.54 kB 08:19
4.69 kB 08:19
10.89 kB 08:19
charts0.png24.71 kB 08:19
charts1.png18.81 kB 08:19
charts2.png22.48 kB 08:19
charts3.png7.64 kB 08:19
charts4.png8.15 kB 08:19
charts5.png45.98 kB 08:19
1.76 kB 08:19
5.57 kB 08:19
6.15 kB 08:19
0.gif43.00 B 08:19
bface.gif26.53 kB 08:19
cface.gif8.40 kB 08:19
fface.gif18.05 kB 08:19
jxface2.gif39.75 kB 08:19
neweditor-tab-bg.png216.00 B 08:19
tface.gif19.34 kB 08:19
wface.gif48.68 kB 08:19
yface.gif27.74 kB 08:19
3.95 kB 08:19
389.00 B 08:19
2.77 kB 08:19
1.47 kB 08:19
17.71 kB 08:19
5.48 kB 08:19
124.74 kB 08:19
alignicon.jpg15.72 kB 08:19
bg.png2.74 kB 08:19
icons.gif453.00 B 08:19
icons.png2.62 kB 08:19
image.png1.63 kB 08:19
progress.png1.24 kB 08:19
success.gif445.00 B 08:19
success.png1.58 kB 08:19
4.18 kB 08:19
2.54 kB 08:19
4.28 kB 08:19
5.87 kB 08:19
4.85 kB 08:19
1.64 kB 08:19
950.00 B 08:19
7.64 kB 08:19
1.15 kB 08:19
addimg.png628.00 B 08:19
brush.png608.00 B 08:19
delimg.png516.00 B 08:19
delimgH.png578.00 B 08:19
empty.png519.00 B 08:19
emptyH.png657.00 B 08:19
eraser.png42.26 kB 08:19
redo.png454.00 B 08:19
redoH.png536.00 B 08:19
scale.png435.00 B 08:19
scaleH.png330.00 B 08:19
size.png775.00 B 08:19
undo.png444.00 B 08:19
undoH.png511.00 B 08:19
3.73 kB 08:19
3.84 kB 08:19
26.51 kB 08:19
4.08 kB 08:19
4.30 kB 08:19
1.88 kB 08:19
829.00 B 08:19
4.56 kB 08:19
dragicon.png304.00 B 08:19
1.16 kB 08:19
2.34 kB 08:19
8.72 kB 08:19
1.52 kB 08:19
863.00 B 08:19
3.84 kB 08:19
bg.gif84.00 B 08:19
pre0.png291.00 B 08:19
pre1.gif333.00 B 08:19
pre2.gif422.00 B 08:19
1.01 kB 08:19
922.00 B 08:19
1.55 kB 08:19
bg.png2.74 kB 08:19
center_focus.jpg11.52 kB 08:19
file-icons.gif19.63 kB 08:19
file-icons.png43.04 kB 08:19
icons.gif453.00 B 08:19
icons.png2.62 kB 08:19
image.png1.63 kB 08:19
left_focus.jpg11.16 kB 08:19
none_focus.jpg11.28 kB 08:19
progress.png1.24 kB 08:19
right_focus.jpg11.07 kB 08:19
success.gif445.00 B 08:19
success.png1.58 kB 08:19
14.57 kB 08:19
4.09 kB 08:19
29.40 kB 08:19
2.33 kB 08:19
fClipboard_ueditor.swf1.86 kB 08:19
imageUploader.swf61.38 kB 08:19
46.41 kB 08:19
6.23 kB 08:19
4.05 kB 08:19
18.56 kB 08:19
59.00 B 08:19
13.90 kB 08:19
112.95 kB 08:19
93.63 kB 08:19
21.58 kB 08:19
16.45 kB 08:19
124.36 kB 08:19
103.52 kB 08:19
1.30 kB 08:19
glyphicons-halflings-white.png8.57 kB 08:19
glyphicons-halflings.png12.50 kB 08:19
60.43 kB 08:19
27.96 kB 08:19
3.50 kB 08:19
10.36 kB 08:19
1.28 kB 08:19
31.50 kB 08:19
leipi_formdesign.png6.39 kB 08:19
progressbar.gif2.23 kB 08:19
qrcode.gif1.97 kB 08:19
bg.gif84.00 B 08:19
pre0.png250.00 B 08:19
pre1.png291.00 B 08:19
92.62 kB 08:19
32.01 kB 08:19
2.26 kB 08:19
971.00 B 08:19
8.00 kB 08:19
1.49 kB 08:19
5.66 kB 08:19
5.15 kB 08:19
9.71 kB 08:19
10.67 kB 08:19
12.44 kB 08:19
11.36 kB 08:19
8.87 kB 08:19
6.90 kB 08:19
6.94 kB 08:19
6.56 kB 08:19
config.json6.03 kB 08:19
388.00 B 08:19
commons-codec-1.9.jar257.78 kB 08:19
commons-fileupload-1.3.1.jar67.38 kB 08:19
commons-io-2.4.jar180.80 kB 08:19
json.jar45.17 kB 08:19
ueditor-1.1.1.jar30.02 kB 08:19
28.67 kB 08:19
addimage.png3.29 kB 08:19
alldeletebtnhoverskin.png743.00 B 08:19
alldeletebtnupskin.png743.00 B 08:19
background.png3.76 kB 08:19
button.png4.81 kB 08:19
copy.png1.19 kB 08:19
deletedisable.png649.00 B 08:19
deleteenable.png664.00 B 08:19
listbackground.png3.66 kB 08:19
localimage.png3.01 kB 08:19
music.png89.42 kB 08:19
rotateleftdisable.png719.00 B 08:19
rotateleftenable.png952.00 B 08:19
rotaterightdisable.png754.00 B 08:19
rotaterightenable.png1,007.00 B 08:19
upload.png3.85 kB 08:19
copy.png4.22 kB 08:19
localimage.png6.82 kB 08:19
music.png22.56 kB 08:19
upload.png6.45 kB 08:19
28.66 kB 08:19
42.73 kB 08:19
34.14 kB 08:19
1.65 kB 08:19
anchor.gif184.00 B 08:19
arrow.png1.15 kB 08:19
arrow_down.png1.57 kB 08:19
arrow_up.png1.61 kB 08:19
button-bg.gif1.09 kB 08:19
cancelbutton.gif1.20 kB 08:19
charts.png518.00 B 08:19
cursor_h.gif253.00 B 08:19
cursor_h.png175.00 B 08:19
cursor_v.gif370.00 B 08:19
cursor_v.png177.00 B 08:19
dialog-title-bg.png938.00 B 08:19
filescan.png4.18 kB 08:19
highlighted.gif111.00 B 08:19
icons-all.gif3.66 kB 08:19
icons.gif20.46 kB 08:19
icons.png19.23 kB 08:19
loaderror.png3.13 kB 08:19
loading.gif734.00 B 08:19
lock.gif1.04 kB 08:19
neweditor-tab-bg.png216.00 B 08:19
pagebreak.gif54.00 B 08:19
scale.png167.00 B 08:19
sortable.png2.78 kB 08:19
spacer.gif43.00 B 08:19
sparator_v.png122.00 B 08:19
table-cell-align.png1.80 kB 08:19
tangram-colorpicker.png16.95 kB 08:19
toolbar_bg.png170.00 B 08:19
unhighlighted.gif111.00 B 08:19
upload.png6.45 kB 08:19
videologo.gif1.57 kB 08:19
word.gif1,019.00 B 08:19
wordpaste.png6.32 kB 08:19
41.00 B 08:19
155.77 kB 08:19
6.95 kB 08:19
2.82 kB 08:19
154.89 kB 08:19
2.21 kB 08:19
7.61 kB 08:19
3.23 kB 08:19
8.72 kB 08:19
4.95 kB 08:19
11.38 kB 08:19
21.30 kB 08:19
58.77 kB 08:19
137.55 kB 08:19
433.95 kB 08:19
3.32 kB 08:19
8.18 kB 08:19
56.52 kB 08:19
98.32 kB 08:19
4.33 kB 08:19
15.14 kB 08:19
5.42 kB 08:19
10.69 kB 08:19
7.08 kB 08:19
16.86 kB 08:19
1.93 kB 08:19
6.38 kB 08:19
535.00 B 08:19
1.10 kB 08:19
9.88 kB 08:19
25.16 kB 08:19
1.33 kB 08:19
2.79 kB 08:19
4.25 kB 08:19
4.24 kB 08:19
4.38 kB 08:19
1.75 kB 08:19
1.72 kB 08:19
266.80 kB 08:19
90.92 kB 08:19
jquery-1.10.2.min.map136.75 kB 08:19
UEditorSnapscreen.exe507.75 kB 08:19
vjs.eot3.45 kB 08:19
vjs.svg9.64 kB 08:19
vjs.ttf3.29 kB 08:19
vjs.woff4.13 kB 08:19
20.82 kB 08:19
11.18 kB 08:19
video-js.swf15.86 kB 08:19
209.79 kB 08:19
54.09 kB 08:19
Uploader.swf48.22 kB 08:19
515.00 B 08:19
193.52 kB 08:19
45.81 kB 08:19
135.64 kB 08:19
32.81 kB 08:19
182.25 kB 08:19
45.99 kB 08:19
226.46 kB 08:19
56.91 kB 08:19
148.40 kB 08:19
38.87 kB 08:19
42.20 kB 08:19
18.51 kB 08:19
ZeroClipboard.swf3.84 kB 08:19
1.06 MB 08:19
359.19 kB 08:19
19.33 kB 08:19
35.92 kB 08:19
14.02 kB 08:19
76.76 kB 08:19
8.01 kB 08:19
close.png225.00 B 08:19
close0.png623.00 B 08:19
loading.gif2.70 kB 08:19
titleBG.png150.00 B 08:19
titleBG0.png159.00 B 08:19
titleBG1.png457.00 B 08:19
1.20 kB 08:19
1.47 kB 08:19
wbox.gif49.00 B 08:19
wbox.png121.00 B 08:19
wbox2.gif49.00 B 08:19
1_close.png601.00 B 08:19
1_open.png580.00 B 08:19
2.png570.00 B 08:19
3.png762.00 B 08:19
4.png399.00 B 08:19
5.png710.00 B 08:19
6.png432.00 B 08:19
7.png534.00 B 08:19
8.png529.00 B 08:19
9.png467.00 B 08:19
line_conn.gif45.00 B 08:19
loading.gif381.00 B 08:19
zTreeStandard.gif5.43 kB 08:19
zTreeStandard.png10.91 kB 08:19
24.92 kB 08:19
5.69 kB 08:19
Sponsored links
评价成功,多谢!
下载snaker-web-master.zip
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足
支付宝优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:172.647ms 27.69
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧}

我要回帖

更多关于 shiroprincipal 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信