在线网校M站
3 | 4 | 5 | 6 | 7 |Equivalent to {@link org.apache.shiro.web.tags.HasPermissionTag}
5 | * 6 | * @since 0.1 7 | */ 8 | public class HasPermissionTag extends PermissionTag { 9 | protected boolean showTagBody(String p) { 10 | return isPermitted(p); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /ocProject/ocCommon/src/main/java/com/online/college/common/web/shiro/freemarker/HasRoleTag.java: -------------------------------------------------------------------------------- 1 | package com.online.college.common.web.shiro.freemarker; 2 | 3 | /** 4 | *Equivalent to {@link org.apache.shiro.web.tags.HasRoleTag}
5 | */ 6 | public class HasRoleTag extends RoleTag { 7 | protected boolean showTagBody(String roleName) { 8 | return getSubject() != null && getSubject().hasRole(roleName); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ocProject/ocCommon/src/main/java/com/online/college/common/web/shiro/freemarker/LacksPermissionTag.java: -------------------------------------------------------------------------------- 1 | package com.online.college.common.web.shiro.freemarker; 2 | 3 | /** 4 | *Equivalent to {@link org.apache.shiro.web.tags.LacksPermissionTag}
5 | */ 6 | public class LacksPermissionTag extends PermissionTag { 7 | protected boolean showTagBody(String p) { 8 | return !isPermitted(p); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /ocProject/ocCommon/src/main/java/com/online/college/common/web/shiro/freemarker/LacksRoleTag.java: -------------------------------------------------------------------------------- 1 | package com.online.college.common.web.shiro.freemarker; 2 | 3 | /** 4 | *Equivalent to {@link org.apache.shiro.web.tags.LacksRoleTag}
5 | */ 6 | public class LacksRoleTag extends RoleTag { 7 | protected boolean showTagBody(String roleName) { 8 | boolean hasRole = getSubject() != null && getSubject().hasRole(roleName); 9 | return !hasRole; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ocProject/ocCommon/src/main/java/com/online/college/common/web/shiro/freemarker/RoleTag.java: -------------------------------------------------------------------------------- 1 | package com.online.college.common.web.shiro.freemarker; 2 | 3 | import freemarker.core.Environment; 4 | import freemarker.template.TemplateDirectiveBody; 5 | import freemarker.template.TemplateException; 6 | import java.io.IOException; 7 | import java.util.Map; 8 | 9 | /** 10 | *Equivalent to {@link org.apache.shiro.web.tags.RoleTag}
11 | */ 12 | public abstract class RoleTag extends SecureTag { 13 | String getName(Map params) { 14 | return getParam(params, "name"); 15 | } 16 | 17 | @Override 18 | public void render(Environment env, Map params, TemplateDirectiveBody body) throws IOException, TemplateException { 19 | boolean show = showTagBody(getName(params)); 20 | if (show) { 21 | renderBody(env, body); 22 | } 23 | } 24 | 25 | protected abstract boolean showTagBody(String roleName); 26 | } -------------------------------------------------------------------------------- /ocProject/ocCommon/src/main/java/com/online/college/common/web/shiro/freemarker/ShiroTags.java: -------------------------------------------------------------------------------- 1 | package com.online.college.common.web.shiro.freemarker; 2 | 3 | import freemarker.template.SimpleHash; 4 | 5 | /** 6 | * Shortcut for injecting the tags into Freemarker 7 | * 8 | *Usage: cfg.setSharedVeriable("shiro", new ShiroTags());
9 | */ 10 | public class ShiroTags extends SimpleHash { 11 | public ShiroTags() { 12 | put("authenticated", new AuthenticatedTag()); 13 | put("guest", new GuestTag()); 14 | put("hasAnyRoles", new HasAnyRolesTag()); 15 | put("hasPermission", new HasPermissionTag()); 16 | put("hasRole", new HasRoleTag()); 17 | put("lacksPermission", new LacksPermissionTag()); 18 | put("lacksRole", new LacksRoleTag()); 19 | put("notAuthenticated", new NotAuthenticatedTag()); 20 | put("principal", new PrincipalTag()); 21 | put("user", new UserTag()); 22 | } 23 | } -------------------------------------------------------------------------------- /ocProject/ocCommon/src/main/main4.iml: -------------------------------------------------------------------------------- 1 | 2 |在线网校M站
3 | 4 | 5 | 6 | 7 |