spring security进级篇 V 自定义标签控制显示

阅读更多

上篇提到了,将用户,角色,组,权限存放到数据库中,会遇到UI上spring security 标签失效问题,建议自己定义自定义标签,下面就自定义标签,具体说一下思路;

 

spring security 登陆时将用户信息存放于session中,在自定义标签中通过pageContext 获取session相关信息,通过相应传人的URL,进行相应的比对就可以判断某些URL是否有访问权限,进而控制是否显示。

 

下面是一个简单的自定义标签的例子,如果URL为空,则不显示超链接,否则就显示,在现实中这个判断可以和spring security 结合使用:

 

tag的java类

 

/**
 * 
 */
package org.springsecurity.tag;

import javax.servlet.jsp.tagext.BodyTagSupport;

/**
 * @author jgao1
 * 
 */
public class AuthorizeTag extends BodyTagSupport {

	private static final long serialVersionUID = 1L;

	private String URL;

	public String getURL() {
		return URL;
	}
	
	public void setURL(String uRL) {
		URL = uRL;
	}
	@Override
	public int doStartTag() {
		// 如果URL不空就显示URL,否则就不显
		if (null != URL && !"".equals(URL)) {
			return EVAL_BODY_INCLUDE;
		}
		return this.SKIP_BODY;
	}
}

 

authorize.tld



	
	
	
	1.0
	security
	http://www.springsecurity.org/jsp
	
		
		
		
		authorize
		
            org.springsecurity.tag.AuthorizeTag
		
		JSP
		
			URL
			false
			true
			java.lang.String
		
	

  web.xml



	
		index.jsp
	
	
		http://www.springsecurity.org/jsp
        /WEB-INF/authorize.tld
	

 index,jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>


	进入admin页面



	进入admin页面

 通过测试会发现,

第一个标签显示,第二个标签不显示,目的已达到,另外,自定义标签教程,方便以后查询

 

 

  • securitycustomtag.rar (5.9 KB)
  • 下载次数: 65
  • JSP自定义标签.rar (374.6 KB)
  • 下载次数: 55

你可能感兴趣的:(spring security进级篇 V 自定义标签控制显示)