如何使用Spring Security为微服务创建自定义安全筛选器

Sam*_*bit 8 spring spring-mvc spring-security servlet-filters

我对Spring安全性的基本概念很少.我想为一个应用程序开发多个微服务,我想要在所有微服务中使用一点认证和授权.为了使其更具体,我想创建一个通用的Filter,它只能在每个微服务应用程序的web.xml中使用.我不想在所有微服务中使用以下内容.

弹簧security.xml文件

<http>
        <intercept-url pattern="/index*" access="ROLE_USER" />
        <access-denied-handler error-page="/customaccessdenied.jsp" />
        <intercept-url pattern="/manage*" access="ROLE_ADMIN" />
        <form-login default-target-url="/index" always-use-default-target="true"/>
        <logout/>
        <!-- <remember-me/> -->
    </http>

    <authentication-manager>
        <authentication-provider>
            <user-service>
                <user name="admin" password="admin" authorities="ROLE_ADMIN,ROLE_USER" />
                <user name="deb" password="deb" authorities="ROLE_USER" />
            </user-service>
        </authentication-provider>
    </authentication-manager>



web.xml
=======
<!-- Spring Security -->
    <filter>
        <filter-name>springSecurityFilterChain</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>springSecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
Run Code Online (Sandbox Code Playgroud)

我不想在所有微服务中使用上述内容.我的应用程序应该如下图所示.

在此输入图像描述

请帮我如何实现它,如果您有任何样品申请,请提供链接.同样,重点是将所有与安全性相关的东西放在一个地方,并使用该库和自定义过滤器仅使用所有微服务的web.xml.

我想实现这样的目标

<filter>
        <filter-name>mySecurityFilterChain</filter-name>
        <filter-class>com.world.india.DelegatingFilterProxy</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>mySecurityFilterChain</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
Run Code Online (Sandbox Code Playgroud)

在这方面我需要你的帮助.希望它对其他人有所帮助.

Soh*_*hil 0

您只需将所有视图放入文件夹中并设置对特定角色的访问权限即可。因此,任何带有 /service/* 的请求都可以重定向到登录屏幕,而所有其他请求可能不需要身份验证 (/*)

<http pattern="/resources/**" security="none" />
    <http>
    <intercept-url pattern="/service/*" access="ROLE_ADMIN" />
    <access-denied-handler error-page="/customaccessdenied.jsp" />
    <intercept-url pattern="/manage*" access="ROLE_ADMIN" />
    <form-login default-target-url="/index" always-use-default-     target="true"/>
    <logout/>
    <!-- <remember-me/> -->
</http>
Run Code Online (Sandbox Code Playgroud)

您可以按照本教程设置自定义安全配置