SSM集成SpringSecurity(二)使用HttpBasic方式实现认证

HttpBasic和FormLogin都是security的认证方式,这种认证是在用户访问被保护资源时进行登录使用。本节主要讲解如何使用HttpBasic实现认证。

我举个简单的例子,一个商品管理系统中拥有:查看商品,新增商品,修改商品,删除商品这几个功能。借助这些功能使用一下HttpBasic。

1:如图所示,新增一个商品controller

package com.xhc;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

/**

* 商品

*

* @author xuhongchang

*/

@Controller

@RequestMapping("/goods")

public class GoodsController {

/**

* 商品首页

*

* @return

*/

@RequestMapping("/index")

public String index() {

return "index";

}

/**

* 商品新增

*

* @return

*/

@RequestMapping("/add")

public String add() {

return "goods/addGoods";

}

/**

* 商品修改

*

* @return

*/

@RequestMapping("/update")

public String update() {

return "goods/updateGoods";

}

/**

* 商品删除

*

* @return

*/

@RequestMapping("/delete")

public String delete() {

return "goods/deleteGoods";

}

/**

* 商品展示

*

* @return

*/

@RequestMapping("/list")

public String list() {

return "goods/listGoods";

}

}

2:在springmvc.xml中增加配置。增加后的代码如下

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xmlns:contenxt="http://www.springframework.org/schema/context"

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

http://www.springframework.org/schema/mvc/spring-mvc.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd">

<!-- 扫描Controller类-->

<contenxt:component-scan base-package="com.xhc"/>

<!--注解方式处理器映射器和处理器适配器 -->

<mvc:annotation-driven></mvc:annotation-driven>

<!--视图解析器-->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<!--前缀 -->

<property name="prefix" value="/WEB-INF/jsp/"/>

<!-- 后缀-->

<property name="suffix" value=".jsp"/>

</bean>

</beans>

3:如下图新增jsp/goods文件夹,并新增对应的jsp文件。具体页面代码分别列在下面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>新增商品</title>

</head>

<body>

新增商品页面

</body>

</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>商品删除</title>

</head>

<body>

商品删除页面

</body>

</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>显示商品</title>

</head>

<body>

显示商品页面

</body>

</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>商品更新</title>

</head>

<body>

商品更新页面

</body>

</html>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>首页</title>

</head>

<body>

商品信息管理</br>

<a href="${pageContext.request.contextPath}/goods/list">商品显示</a></br>

<a href="${pageContext.request.contextPath}/goods/add">商品添加</a></br>

<a href="${pageContext.request.contextPath}/goods/update">商品修改</a></br>

<a href="${pageContext.request.contextPath}/goods/delete">商品删除</a></br>

</body>

</html>

启动项目,访问ip+端口+项目名+goods/index

4:以上是为使用springSecurity做准备。下面讲解一下spring-security.xml文件中标签的含义。

<!-- 从标签的名字就可以大致看出各自的作用,具体的使用,下面会介绍到的 -->

<!-- security:http主要的主要作用是配置过滤器链

1: 保护资源

2: 定义什么角色访问什么样的资源

3: 定义认证方式

4: 定义登录页面,登录请求地址,错误处理等

-->

<security:http>

<security:http-basic/>

</security:http>


 

<!-- 认证管理器:认证信息的提供方式,用户名,密码,权限等 -->

<security:authentication-manager>

</security:authentication-manager>

5:配置Http-basic

修改spring-security.xml文件的security:http标签中的内容,security:http-basic即表示项目使用http-basic方式进行认证。

<security:http>

<!--

pattern:需要拦截的资源。/**表示拦截所有的资源

access:拦截的方式。

isFullyAuthenticated:资源需要认证才能被访问

-->

<security:intercept-url pattern="/**" access="isFullyAuthenticated()"/>

<!-- 使用http-basic方式进行认证 -->

<security:http-basic/>

</security:http>

重新启动项目进行访问,出现下图,表示配置成功。访问项目资源需要登录。

可是用户名和密码从哪里得到呢?

还记得上面说的<security:authentication-manager>标签吗?修改配置,用户名和密码暂时写死,权限一定要以ROLE_开头。

<security:authentication-manager>

<security:authentication-provider>

<security:user-service>

<security:user name="xhc" password="123456" authorities="ROLE_USER"/>

</security:user-service>

</security:authentication-provider>

</security:authentication-manager>

启动运行,输入用户名密码即可访问资源。

到此,http-basic的配置方式基本完成。但是用户名和密码暂时是写死,后面会将此换成从数据库中读取。稍安勿躁,稍安勿躁。

发布了39 篇原创文章 · 获赞 33 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/love1793912554/article/details/104294887
今日推荐