后端代码

简介: 本文介绍了Spring Security基础配置:通过定义接口暴露访问路径,创建SecurityConfig配置类实现权限控制。配置中启用表单登录,设置登录页、认证接口、成功/失败跳转地址,并关闭CSRF以简化测试,所有请求均需认证后访问。

1.定义接口
这里我们在原来的基础之上,继续追加一个即可,我就简单的添加一下哥哥的地址吧
package com.yzxb.SpringSecurity.web;

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

@RestController
@RequestMapping("demo")
public class HelloController {

@GetMapping
public String helloWorld() {
    return "Hello Spring Security";
}

// 这个是新增的
@RequestMapping("/index")
public String index(){
    return "油炸小波,欢迎加入IKUN大家庭";
}

}

2.创建配置类
package com.yzxb.SpringSecurity.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
            .anyRequest().authenticated().and().formLogin()
            .loginPage("/login.html")
            .loginProcessingUrl("/doLogin")
            .defaultSuccessUrl("/demo/index")
            .failureUrl("/login.html")
            .usernameParameter("uname")
            .passwordParameter("passwd")
            .permitAll()
            .and()
            .csrf().disable();
}

}
这个配置类非常重要,笔者带领大家单独解释一下。
(1)configure是一个链式配置,这里不用链式配置也可以,那就每一个属性设置后再http.重新开始写
(2)authenticated()表示开始权限配置,.anyRequest().authenticated()表示所有请求都需认证才可访问
(3)and()会返回HttpSecurityBuilder对象的一个子类(实际就是HttpSecurity),所以and方法相当于又回到HttpSecurity,重新开启新一轮的配置
(4)formLogin()表示开启表单登录配置,loginPage("")用来配置登录页面地址;loginProcessingUrl("")用来配置登录接口地址;defaultSuccessUrl("")用来表示登陆成功后的跳转地址;failureUrl("")表示登录失败后的跳转地址;usernameParameter、passwordParameter表示登录用户名、密码参数名称;permitAll()表示跟登录相关的接口和页面不做拦截,直接通过。
(5)csrf().disable()表示禁用CSRF防御功能,SpringSecurity自带CSRF机制,这里为了测试方便临时关闭。

相关文章
|
1天前
|
Java 程序员
为什么需要RESTful
本文探讨HTTP接口演进历程,从Servlet到SpringMVC,指出当前仍存在的接口设计不规范问题,如订单操作行为不统一、路径定义混乱等。提出应采用RESTful风格,实现资源与行为的标准化映射,具备结构清晰、统一标准、易于维护和扩展的优势,提升接口可读性与系统可维护性。(238字)
|
1天前
|
安全 API
RESTful使用进阶
设计RESTful API需在初期引入“资源”概念,避免URI含动词,应使用名词表示资源,动词由HTTP方法(GET、POST等)表达。每个URI代表唯一资源,不同URI可指向同一资源,但一URI不应对应多个资源。通过HTTP方法实现CRUD操作,状态码反映结果,确保接口语义清晰、行为安全且符合规范。
|
1天前
|
XML JSON 数据格式
如何使用RESTful
通过URI对资源进行增删改查:GET获取资源列表或详情,PUT替换资源组或创建单个资源,POST添加新资源或子元素,DELETE删除整组或指定资源,支持JSON、XML等格式。
|
1天前
|
安全 Java 微服务
SpringBoot使用汇总
本课程系统讲解Spring Boot 2.0.3核心技能,涵盖配置、MVC、持久化、安全认证、缓存等实战内容,分为基础与进阶两篇,助你快速掌握微服务开发,附真实项目架构与源码。
|
1天前
|
前端开发 程序员
常见注解及使用说明
本文介绍了SpringMVC中@RequestMapping注解的作用及原理,它用于将HTTP请求映射到控制器方法,实现前后端接口路径对应。并通过@GetMapping等派生注解简化常用请求类型处理,提升开发效率。
|
1天前
|
存储 数据库
数据库设计三范式
数据库设计三范式简介:第一范式要求字段原子性,不可再分;第二范式在满足第一范式基础上,消除部分依赖,确保主键唯一确定非主键;第三范式消除传递依赖,避免非主键字段间相互决定。范式旨在减少数据冗余、提升维护性,但实际设计需结合业务权衡,不必严格遵循。
|
1天前
|
SQL 安全 网络协议
常见的网络攻击
恶意软件指具有破坏性意图的程序,如病毒、勒索软件、间谍软件等,常通过钓鱼邮件或漏洞入侵系统,窃取数据、阻断服务或安装后门。网络钓鱼伪装成可信来源骗取敏感信息。中间人攻击在通信中窃听并篡改数据。DDoS攻击利用大量流量瘫痪系统,近年趋势显示攻击规模与加密手段日益增强。SQL注入通过输入恶意代码获取非法数据访问权限。零日攻击利用未修复漏洞发起突击。DNS隧道则滥用域名协议隐藏恶意通信,实现数据外泄与远程控制。
|
1天前
|
SQL 安全 Java
防御 SQL 注入攻击
SQL注入可在应用层和网络层检测防御。应用层防御主要包括输入验证(白名单更安全)和使用参数化查询防止恶意SQL构造。同时应过滤敏感字符、处理错误信息,避免泄露数据库细节,提升安全性。
|
1天前
|
SQL 存储 安全
盲注和二阶 SQL 注入
SQL盲注通过延迟等间接方式判断语句执行,获取敏感信息或篡改数据库。攻击者利用sleep()或耗时操作引发响应延迟,分析执行结果。二阶SQL注入则利用存储后二次执行的数据,隐蔽性强,需结合参数化查询与严格验证防范。