spring security实践

参考资料 documentation doc

web.xml启用spring的filter

<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>

servlet默认是jsp页面,如果改用html,需要添加filter mapping

    <servlet-mapping> 
		<servlet-name>jsp</servlet-name> 
		<url-pattern>*.html</url-pattern> 
	</servlet-mapping>

配置拦截路径,如下用 /** 会拦截所有资源,包括js等静态资源,即使在spring-config.xml中取消了拦截。我这里改用了 /* 配置。

<http>
  <intercept-url pattern="/**" access="ROLE_USER" />
  <form-login />
  <logout />
</http>
如果这时候启动,会提示缺少ROLE_USER的声明,需要增加用户配置。

<authentication-manager>
  <authentication-provider>
    <user-service>
      <user name="jimi" password="jimispassword" authorities="ROLE_USER, ROLE_ADMIN" />
      <user name="bob" password="bobspassword" authorities="ROLE_USER" />
    </user-service>
  </authentication-provider>
</authentication-manager>

这时就可以启动浏览器了,发现浏览器会自动跳到spring生成的jsp

关于这个登录页,doc中说明了是spring自动生成的,当然如果指定了登陆页就不会跳转到spring_security_login这个页面了


指定自定义的login,由于饮用了资源文件,先取消资源文件的拦截

<span style="white-space:pre">	</span><security:http pattern="**.jpg" security="none" />
	<security:http pattern="**.png" security="none" />
	<security:http pattern="**.gif" security="none" />
	<security:http pattern="**.css" security="none" />
	<security:http pattern="**.js" security="none" /> 
<security:form-login
        	login-page="/login.html"
        />
login.html 就是我自己的登陆页,重启server,效果如下。


实际情况中,肯定需要自定义登录控制

customized user service

  <authentication-manager>
    <authentication-provider user-service-ref='myUserDetailsService'/>
  </authentication-manager>

DB控制

<authentication-manager>
  <authentication-provider>
    <jdbc-user-service data-source-ref="securityDataSource"/>
  </authentication-provider>
</authentication-manager>
声明具体的实现类,db方式就是spring中的datasource

<authentication-manager>
  <authentication-provider user-service-ref='myUserDetailsService'/>
</authentication-manager>

<beans:bean id="myUserDetailsService"
    class="org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl">
  <beans:property name="dataSource" ref="dataSource"/>
</beans:bean>

MD5加密

<password-encoder ref="bcryptEncoder"/>
记住用户

<remember-me key="myAppKey"/>
https证书另外添加配置

<http>
  <intercept-url pattern="/secure/**" access="ROLE_USER" requires-channel="https"/>
  <intercept-url pattern="/**" access="ROLE_USER" requires-channel="any"/>
  ...
</http>
  <port-mappings>
    <port-mapping http="9080" https="9443"/>
  </port-mappings>

session失效跳转

<http>
  ...
  <session-management invalid-session-url="/invalidSession.htm" />
</http>
退出时清理session

<http>
  <logout delete-cookies="JSESSIONID" />
</http>

暂且到这里





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Security是一个开源的安全框架,用于为Java应用程序提供身份验证、授权和其他安全功能。它可以集成到Spring应用程序中,并提供了许多可插拔的功能和扩展点,使开发者可以轻松地添加安全性到他们的应用程序中。 要在Spring应用程序中使用Spring Security,你可以通过添加相应的依赖来引入Spring Security启动器。在Spring Boot项目中,可以使用以下依赖来集成Spring Security: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` 通过添加这个依赖,Spring Boot将自动配置Spring Security,并提供了一组默认的安全配置。这些配置包括基于表单的身份验证、HTTP Basic认证、CSRF保护等。 要实践Spring Security,你可以按照以下步骤进行: 1. 添加Spring Security的启动器依赖到你的项目中。 2. 配置Spring Security的相关设置,例如用户认证、授权规则等。你可以使用Java配置或XML配置来定义这些设置。 3. 使用Spring Security提供的注解和API保护你的应用程序的资源,例如URL路径、方法等。 4. 测试和验证你的Spring Security配置,确保它们按预期工作。 通过这些步骤,你可以成功地实践Spring Security,为你的应用程序提供安全性和保护。你可以参考上述提供的引用链接,了解更多关于Spring Security的详细信息和实践方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Spring Security 最佳实践,看了必懂!](https://blog.csdn.net/m0_71777195/article/details/126742796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Spring Security 应用实践](https://blog.csdn.net/qq_38454776/article/details/122591321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值