2.1 获取登录名 我们在处理后端逻辑需要获得登录名,那么如何获取单点登录的用户名呢? 其实和我们之前获得用户名的方式是完全相同的,我们下面来做个测试。 (1) web.xml 添 加 springmvc [AppleScript] 纯文本查看 复制代码 <servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class
>
<!-- 指定加载的配置文件 ,通过参数 contextConfigLocation 加载-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> (2)创建 springmvc.xml [AppleScript] 纯文本查看 复制代码 <context:component-scan base-package="cn.itcast.demo" />
<mvc:annotation-driven /> (3)创建 UserController [AppleScript] 纯文本查看 复制代码 @RestController
public class UserController { @RequestMapping("/findLoginUser") public void findLoginUser(){
String name = SecurityContextHolder.getContext().getAuthentication().getName();
System.out.println(name);
}
} 地址栏输入 http://localhost:9003/findLoginUser.do 即可在控制台看到输出的登录名。 2.1 退出登录 修改 spring-security.xml [AppleScript] 纯文本查看 复制代码 <beans:bean id="requestSingleLogoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter">
<beans:constructor-arg value="http://localhost:9100/cas/logout?service=http://localhost:9003/index2.html"/
>
<beans:constructor-arg>
<beans:bean class="org.springframework.security.web.authentication.logout.SecurityContextLogout Handler"/>
</beans:constructor-arg>
<beans:property name="filterProcessesUrl" value="/logout/cas"/>
</beans:bean> 在页面上添加链接 [AppleScript] 纯文本查看 复制代码 < a href="/logout/cas">退出登录</ a>
创建 index2.html,将 index2.html 设置为可匿名访问
[AppleScript] 纯文本查看 复制代码 <http pattern="/index2.html" security="none"></http>
|