天天看點

spring security學習

首先背景介紹,

Spring Security(原名:Acegi Security)是一個能夠為基于Spring的企業應用系統提供描述性安全通路控制解決方案的安全架構。它提供了一組可以在Spring應用上下文中配置的Bean,充分利用了Spring IoC(依賴注入,也稱控制反轉)和AOP(面向切面程式設計)功能,為應用系統提供聲明式的安全通路控制功能,減少了為企業系統安全控制編寫大量重複代碼的工作。

spring security學習

配置web.xml,使用Spring的機制裝載:

<filter>

spring security學習

<filter-name>springSecurityFilterChain</filter-name>

spring security學習

<filter-class>

spring security學習

org.springframework.web.filter.DelegatingFilterProxy

spring security學習

</filter-class>

spring security學習

</filter>

spring security學習

<filter-mapping>

spring security學習

<filter-name>springSecurityFilterChain</filter-name>

spring security學習

<url-pattern>

spring security學習

    public void doFilter(ServletRequest request, ServletResponse response,

spring security學習

            FilterChain chain) throws IOException, ServletException {

spring security學習

        FilterInvocation fi = new FilterInvocation(request, response, chain);

spring security學習

        invoke(fi);

spring security學習

    }

spring security學習
spring security學習

    public FilterInvocationSecurityMetadataSource getSecurityMetadataSource() {

spring security學習

        return this.securityMetadataSource;

spring security學習

    }

spring security學習
spring security學習

    public Class<? extends Object> getSecureObjectClass() {

spring security學習

        return FilterInvocation.class;

spring security學習

    }

spring security學習
spring security學習

    public void invoke(FilterInvocation fi) throws IOException,

spring security學習

            ServletException {

spring security學習

        InterceptorStatusToken token = super.beforeInvocation(fi);

spring security學習

        try {

spring security學習

            fi.getChain().doFilter(fi.getRequest(), fi.getResponse());

spring security學習

        } finally {

spring security學習

            super.afterInvocation(token, null);

spring security學習

        }

spring security學習

    }

spring security學習
spring security學習

    public SecurityMetadataSource obtainSecurityMetadataSource() {

spring security學習

        return this.securityMetadataSource;

spring security學習

    }

spring security學習
spring security學習

    public void setSecurityMetadataSource(

spring security學習

            FilterInvocationSecurityMetadataSource newSource) {

spring security學習

        this.securityMetadataSource = newSource;

spring security學習

    }

spring security學習
spring security學習

    @Override

spring security學習

    public void destroy() {

spring security學習

    }

spring security學習
spring security學習

    @Override

spring security學習

    public void init(FilterConfig arg0) throws ServletException {

spring security學習

    }

spring security學習
spring security學習

}