使用适配器

时间:2015-07-17 16:25:49

标签: spring spring-mvc java-ee spring-security weblogic-10.x

我有一个应用程序需要在weblogic 10.3.6服务器中部署2个安全性http标签, Spring Framework 3.1.2& spring-security-3.1.2 版本: 1,基于表单的登录:用户使用登录页面直接登录。 2.基本身份验证:休息WebService调用。

我已成功添加FORM_BASED_LOGIN .- 此工作正常

了解BASIC Auth for REST WebServices的任何方向。 对于基本身份验证:Weblogic弹出一个额外的弹出窗口,我必须输入weblogic控制台的凭据。

要解决这个问题,我找到了两种方法: 1.使用以下标记更新服务器config.xml文件:

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>

参考:Spring Security HTTP Basic Authentication

  1. 添加适配器和applicationContext-acegi-security.xml 和WeblogicAuthenticationFilter
  2. 我喜欢做第二种方法,因为它不涉及对服务器配置的任何更改。 如果任何人能够指出我正确的方向或实现这一点的例子,那就太好了。

    参考:http://docs.tpu.ru/docs/oracle/en/fmw/11.1.1.6.0/web.1111/e14453/security.htm

    更新:添加我当前的spring-security配置:

        <http create-session="stateless" entry-point-ref="basicAuthEntryPoint" pattern="/api/**" use-expressions="true">
        <intercept-url pattern="/api/listbyorderid" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')" />
        <intercept-url pattern="/api/listbycustomerid" access="hasAnyRole('ROLE_USER','ROLE_ADMIN')" />
        <custom-filter ref="basicAuthenticationFilter" after="BASIC_AUTH_FILTER" />
    
       </http>
    
        <http auto-config="false" use-expressions="true" access-denied-page="/security/denied" entry-point-ref="authenticationEntryPoint">
        <intercept-url pattern="/security/login" access="permitAll" />
        <intercept-url pattern="/layouts/*" access="permitAll"/>
        <intercept-url pattern="/tiles/*"  access="permitAll"/>
        <intercept-url pattern="/jquery/*"  access="permitAll"/>
        <intercept-url pattern="/css/*"  access="permitAll"/>
        <intercept-url pattern="/admin/css/*"  access="permitAll"/>
        <intercept-url pattern="/admin/images/*"  access="permitAll"/>
        <intercept-url pattern="/admin/ico/*"  access="permitAll"/>
        <intercept-url pattern="/admin/jquery/*"  access="permitAll"/>
    
        <logout invalidate-session="true" logout-url="/j_spring_security_logout"  success-handler-ref="logoutSuccessHandler" delete-cookies="JSESSIONID"/>
        <!-- Custom filter to deny unwanted users even though registered -->
        <custom-filter ref="blacklistFilter" before="FILTER_SECURITY_INTERCEPTOR" />
    
        <!-- Custom filter for username, password and domain. The real customization is  done in the customAuthenticationManager -->
        <custom-filter ref="authenticationFilter" position="FORM_LOGIN_FILTER" />
    
        </http>
    

    先谢谢。

1 个答案:

答案 0 :(得分:0)

Spring Security支持开箱即用。您可以查看基于Java的配置的helloworld-jc或基于xml的配置的helloworld-xml。鉴于您使用的是weblogic 10.3.6的servlet 2.5,您将需要使用XML示例。