Velocity模版进行shiro验证
2017-04-07 16:20
155 查看
先在Spring配置Velocity视图解析器
在WEB-INF文件夹创建velocity-toolbox.xml
再来看
com.wstro.shiro.VelocityShiro
ShiroUtils工具类
前台Velocity模版直接调用就可以
这里只实现了Permission验证。如果要多个自己可以模仿这个
还有 freemarker中使用shiro标签
<!-- Velocity视图解析器 默认视图 --> <bean id="velocityViewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> <property name="contentType" value="text/html;charset=UTF-8" /> <property name="viewNames" value="*.html" /> <property name="suffix" value="" /> <property name="dateToolAttribute" value="date" /> <property name="numberToolAttribute" value="number" /> <property name="toolboxConfigLocation" value="/WEB-INF/velocity-toolbox.xml" /> <property name="requestContextAttribute" value="rc" /> <property name="order" value="0" /> </bean> <bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer"> <property name="resourceLoaderPath" value="/WEB-INF/page/" /> <property name="velocityProperties"> <props> & 4000 lt;prop key="input.encoding">UTF-8</prop> <prop key="output.encoding">UTF-8</prop> <prop key="contentType">text/html;charset=UTF-8</prop> </props> </property> </bean>
在WEB-INF文件夹创建velocity-toolbox.xml
<?xml version="1.0" encoding="UTF-8" ?> <toolbox> <!-- velocity 自定义标签 --> <tool> <key>shiro</key> <scope>application</scope> <class>com.wstro.shiro.VelocityShiro</class> </tool> </toolbox>
再来看
com.wstro.shiro.VelocityShiro
import org.apache.shiro.SecurityUtils; import org.apache.shiro.subject.Subject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Shiro权限标签(Velocity版) * * @author chenshun * @email sunlightcs@gmail.com * @date 2016年12月3日 下午11:32:47 */ public class VelocityShiro { private Logger logger = LoggerFactory.getLogger(getClass()); /** * 是否拥有该权限 * * @param permission * 权限标识 * @return true:是 false:否 */ public boolean hasPermission(String permission) { logger.info(permission); Subject subject = SecurityUtils.getSubject(); return subject != null && subject.isPermitted(permission); } /** * 是否拥有该权限 * * @param permission * 权限标识 * @return true:是 false:否 */ public static boolean hasPermissionInMethod(String permission) { Subject subject = SecurityUtils.getSubject(); return subject != null && subject.isPermitted(permission); } }
ShiroUtils工具类
import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; import com.wstro.entity.SysUserEntity; /** * Shiro工具类 * * @author chenshun * @email sunlightcs@gmail.com * @date 2016年11月12日 上午9:49:19 */ public class ShiroUtils { public static Session getSession() { return SecurityUtils.getSubject().getSession(); } public static Subject getSubject() { return SecurityUtils.getSubject(); } public static SysUserEntity getUserEntity() { return (SysUserEntity)SecurityUtils.getSubject().getPrincipal(); } public static Long getUserId() { return getUserEntity().getUserId(); } public static void setSessionAttribute(Object key, Object value) { getSession().setAttribute(key, value); } public static Object getSessionAttribute(Object key) { return getSession().getAttribute(key); } public static boolean isLogin() { return SecurityUtils.getSubject().getPrincipal() != null; } public static void logout() { SecurityUtils.getSubject().logout(); } public static String getKaptcha(String key) { String kaptcha = getSessionAttribute(key).toString(); getSession().removeAttribute(key); return kaptcha; } }
前台Velocity模版直接调用就可以
#if($shiro.hasPermission("sys:project${projectcategory}:save")) <a class="btn btn-primary" @click="add"><i class="fa fa-plus"></i> 新增</a> #end
这里只实现了Permission验证。如果要多个自己可以模仿这个
还有 freemarker中使用shiro标签
相关文章推荐
- shiro实现不同身份使用不同Realm进行验证
- shiro实现不同身份使用不同Realm进行验证
- Apache Shiro 整合Spring 进行权限验证 以及在Freemarker中使用shiro标签
- Shiro进行简单的身份验证(二)
- shiro实现不同身份使用不同Realm进行验证
- 使用shiro进行登录密码安全验证
- shiro进行验证
- 使用 Apache Shiro 为 web 应用程序进行用户身份验证
- Apache Shiro 整合Spring 进行权限验证 以及在Freemarker中使用shiro标签
- 使用shiro进行系统身份验证-权限控制,登录界面乱跳
- 使用 Apache Shiro 为 web 应用程序进行用户身份验证
- Apache Shiro 整合Spring 进行权限验证 以及在Freemarker中使用shiro标签
- shiro实现不同身份使用不同Realm进行验证
- shiro直接对类进行注解,类似于@Controller的形式
- [JAVAWEB]3.用js进行客户端数据有效性验证
- spring mvc + shiro 登陆验证
- ldap验证用户(java)<不能以simple协议来获取连接进行连接>
- php用户注册页面使用js进行表单验证具体实例
- Eclipse中DTD验证导致无法进行代码提示的问题 .
- SpringBoot使用Shiro验证登录笔记