Spring安全性:css在Web浏览器中丢失或未加载

时间:2014-04-21 05:55:30

标签: spring jsp spring-security resources loading

我正在使用spring security 3.0。在spring-security.xml中,显示登录页面时出现1个问题。 Web浏览器中没有加载或丢失CSS的login.jsp。所以请解决这个问题..任何帮助我都很感激你。

我的spring-security.xml代码如下所示。

     <beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.3.xsd">

  <http auto-config="true"  use-expressions="true">
    <intercept-url pattern="/login.html" access="permitAll" />
     <intercept-url pattern="/logout" access="permitAll" />

   <intercept-url pattern="/accessdenied" access="permitAll"  />
    <intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
   <form-login login-page="/login.html" default-target-url="/firstwelcome.html"  />
    <logout logout-success-url="/logout" /> 
  </http>


  <authentication-manager  alias="authenticationManager">  
      <authentication-provider>  
        <password-encoder hash="md5"/>
        <jdbc-user-service data-source-ref="dataSource"
              users-by-username-query="
              SELECT strUSERNAME, strPASSWORD, CASE blENABLED WHEN 1 THEN 'true' ELSE             'false' END 'ENABLED' 
      FROM TBLUSERS 
      WHERE strUSERNAME=?;"

    authorities-by-username-query="
     SELECT strUSERNAME, strROLENAME 
     FROM TBLUSERS
     WHERE strUSERNAME=?;"

     />
  </authentication-provider>  
  </authentication-manager>  



 </beans:beans>

和我的login.jsp的标题在下面给出

           <link rel="stylesheet" type="text/css" href="css/login.css">

在上面的login.jsp中使用link标签来调用css .. 但不幸的是没有调用..``.plz ...帮我调用login.css文件。 任何帮助我都感激你。

由于

3 个答案:

答案 0 :(得分:6)

您需要将此行添加到spring-security.xml以允许此css

<intercept-url pattern="/css/login.css" access="permitAll"/>

所以您的spring-security.xml

<http auto-config="true"  use-expressions="true">
    <intercept-url pattern="/login.html" access="permitAll" />
     <intercept-url pattern="/logout" access="permitAll" />

   <intercept-url pattern="/css/login.css" access="permitAll"/>
   <intercept-url pattern="/accessdenied" access="permitAll"  />
    <intercept-url pattern="/**" access="hasRole('ROLE_USER')" />
   <form-login login-page="/login.html" default-target-url="/firstwelcome.html"  />
    <logout logout-success-url="/logout" /> 
  </http>

希望这会有所帮助!!

答案 1 :(得分:1)

在你的spring servlet中写

这样的代码

<mvc:resources location="/resources/" mapping="/resources/**"/>

将您的css粘贴到资源文件夹中。

  resources -> css -> style.css
  resources folder inside **webapp**

并使用

进行访问
<link href="<c:url value="resources/css/style.css" />" rel="stylesheet">

我确信这会解决您的问题。

答案 2 :(得分:1)

您需要在扩展的java配置类(而不是由XML配置驱动的安全性)中添加以下内容 WebSecurityConfigurerAdapter 假设您的资源位于/ resources / content中 http.authorizeRequests().antMatchers("/resources/content/**").permitAll()