1.controller的web.xml的过滤器可以配置多个:如前端控制器的过滤器、spring security的过滤器:
2.登录从数据库认证实现:
3.前台菜单实现(main.html)
前台要求返回的json和我们后端的数据库表字段名不一样怎么办?
这个时候就不能直接返回实体类,要自己封装为map才行了,如下图:
上面的递归调用得到树状的三级菜单。
4.同源策略
修改这个就行:
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">
<!--以下页面不被拦截-->
<http pattern="/login.html" security="none"></http>
<http pattern="/login_error.html" security="none"></http>
<http pattern="/css/**" security="none"></http>
<http pattern="/img/**" security="none"></http>
<http pattern="/js/**" security="none"></http>
<http pattern="/*.ico" security="none"></http>
<!--页面拦截规则-->
<http>
<intercept-url pattern="/**" access="hasRole('ROLE_ADMIN')"></intercept-url>
<form-login login-page="/login.html" default-target-url="/main.html"
authentication-failure-url="/login.html"/>
<!--关闭跨域请求伪造控制-->
<csrf disabled="true"></csrf>
<!--修改同源策略-->
<headers>
<frame-options policy="SAMEORIGIN"></frame-options>
</headers>
<!--退出登录-->
<logout/>
</http>
<!--认证管理器-->
<authentication-manager>
<authentication-provider user-service-ref="userDetailsService">
<password-encoder ref="bcryptEncoder"></password-encoder>
</authentication-provider>
</authentication-manager>
<beans:bean id="userDetailsService" class="com.qingcheng.controller.UserDetailsServiceImpl"></beans:bean>
<beans:bean id="bcryptEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"></beans:bean>
</beans:beans>
5.显示登录人
6.退出
7.管理员登录日志
ip地址和浏览器(改上面的登陆成功处理器,set进去就行):
Map还可以这样创建
Map map=new HashMap();
day07总结:今天完成的是认证功能、spring security菜单栏的显示、获取当前登录人、退出、管理员登录日志记录ip地址和浏览器。