jeesite模块解析,功能实现

这篇博客详细解析了JeeSite框架的功能实现,包括默认根路径跳转、登陆模块、Shiro授权、ORM对象关系映射、安全模块、缓存处理、主题更换、翻页处理以及树形目录选择等。重点介绍了登陆模块的处理流程,以及Shiro在权限控制中的作用。此外,还提到了JeeSite的安全加密策略和验证码机制。
摘要由CSDN通过智能技术生成

jeesite模块解析,功能实现

做为十分优秀的开源框架,JeeSite拥有着很多实用性的东西。

 

 

 

默认根路径跳转

 

定义了无Controller的path<->view直接映射

<mvc:view-controller  path=”/”  view-name=”redirect:${web.ex}” />

 

登陆login模块

定义了1.sysLogin.jsp

整个jsp可以看做一个表单。主要目的就是接收用户输入的用户名和密码字段信息,然后交给后台处理。Action变量指定了该表达式的提交方式:/a/login所对应的函数来处理。

sysLogin.jsp

<form id="loginForm" action="${ctx}/login" method="post">

账号和密码的属性

<div class="input-row">

    <label for="username">账号</label>

    <input type="text" name="username" id="username" placeholder="请填写登录账号">

</div>

<div class="input-row">

    <label for="password">密码</label>

    <input type="password" name="password" id="password" placeholder="请填写登录密码">

</div>

 

一个username一个password,表单会借由request属性传到函数种,到时候可以通过getUsername和getPassword两个函数从request中取出。但是简单之处必有难点出现。如何对shiro应用确实不易。

 

LoginController.java控制层的方法

/**

 * 管理登录

 */

@RequestMapping(value = "${adminPath}/login", method = RequestMethod.GET)

public String login(HttpServletRequest request, HttpServletResponse response, Model model) {

Principal principal = UserUtils.getPrincipal();

 

if (logger.isDebugEnabled()){

logger.debug("login, active session size: {}", sessionDAO.getActiveSessions(false).size());

}

 

// 如果已登录,再次访问主页,则退出原账号。

if (Global.TRUE.equals(Global.getConfig("notAllowRefreshIndex"))){

CookieUtils.setCookie(response, "LOGINED", "false");

}

 

// 如果已经登录,则跳转到管理首页

if(principal != null && !principal.isMobileLogin()){

return "redirect:" + adminPath;

}

return "modules/sys/sysLogin";

}

/**

 * 登录失败,真正登录的POST请求由Filter完成

 */

@RequestMapping(value = "${adminPath}/login", method = RequestMethod.POST)

public String loginFail(HttpServletRequest request, HttpServletResponse response, Model model) {

Principal principal = UserUtils.getPrincipal();

 

// 如果已经登录,则跳转到管理首页

if(principal != null){

return "redirect:" + adminPath;

}

 

String username = WebUtils.getCleanParam(request, FormAuthenticationFilter.DEFAULT_USERNAME_PARAM);

boolean rememberMe = WebUtils.isTrue(request, FormAuthenticationFilter.DEFAULT_REMEMBER_ME_PARAM);

boolean mobile = WebUtils.isTrue(request, FormAuthent

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值