点击项目 -> new -> Module
选择maven模式
构建完成
子项目默认会加入到父项目maven控制
在 父项目 pom文件中 dependencyManagement 标签内加入一下代码
新建子模块的名称
< ! -- 测试-- >
< dependency>
< groupId> com. safety< / groupId>
< artifactId> safety- demo< / artifactId>
< version> ${ safety. version} < / version>
< / dependency>
在admin 模块中的 pom文件中 dependencies 标签内加入
< ! -- 测试-- >
< dependency>
< groupId> com. safety< / groupId>
< artifactId> safety- demo< / artifactId>
< / dependency>
新建子模块的pom文件中需要加入的代码 "safety" 跟随自己项目 进行修改
< dependencies>
< ! -- 核心模块-- >
< dependency>
< groupId> com. safety< / groupId>
< artifactId> safety- framework< / artifactId>
< / dependency>
< ! -- 通用工具-- >
< dependency>
< groupId> com. safety< / groupId>
< artifactId> safety- common< / artifactId>
< version> ${ safety. version} < / version>
< / dependency>
< / dependencies>
测试
默认包只到java(蓝色文件夹)层,下面的包需要自行创建
认证失败
该段代码在浏览器请求时会报
在项目中对"认证失败,无法访问系统资源"文字进行全局搜索会找到
”AuthenticationEntryPointImpl.java 注释:认证失败处理类 返回未授权 “
未授权是因为该接口没有在权限框架放行,下面就看下如何找到权限框架的配置类并放行
@Component
public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint , Serializable {
private static final long serialVersionUID = - 8970718410437077606L ;
@Override
public void commence ( HttpServletRequest request, HttpServletResponse response, AuthenticationException e)
throws IOException {
int code = HttpStatus . UNAUTHORIZED ;
String msg = StringUtils . format ( "请求访问:{},认证失败,无法访问系统资源" , request. getRequestURI ( ) ) ;
ServletUtils . renderString ( response, JSON . toJSONString ( AjaxResult . error ( code, msg) ) ) ;
}
}
放行接口
根据下图指示 AuthenticationEntryPointImpl.java 被 SecurityConfig.java 引入了,
所以找到 SecurityConfig 它是 springSecurity(安全认证框架) 的配置类
AuthenticationEntryPointImpl 为 认证失败处理类
/**
* 认证失败处理类
*/
@Autowired
private AuthenticationEntryPointImpl unauthorizedHandler;
// 认证失败处理类
.exceptionHandling().authenticationEntryPoint(unauthorizedHandler).and()
加入需要放行的地址即可,修改代码后需要重新启动
. antMatchers ( "/swagger-ui.html" ,
"/swagger-resources/**" ,
"/webjars/**" ,
"/*/api-docs" ,
"/druid/**" ,
"/demo/test/get" ) . permitAll ( )
测试完成