刚开始学习shiro, 实现的效果非常简单,首页点击添加(/user/add),应该能直接访问. 而点击更新(/user/update),应该提示登录.但是实际都可以直接点开,不知道哪里出问题了,shiro的配置没生效,请高手赐教,谢谢
环境:java 17 springboot 3.1.1 shiro 1.11.0
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring-boot-starter</artifactId>
<version>1.11.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
controller/MyController.java
@Controller
public class MyController {
@RequestMapping("/")
public String index() {
return "index";
}
@GetMapping("/user/add")
public String add(Model model) {
return "user/add";
}
@GetMapping("/user/update")
public String update(Model model) {
return "user/update";
}
}
resources/templates/index.html
<html>
<body>
<h1>首页</h1>
<a href="user/add">添加</a>
<a href="user/update">更新</a>
</body>
</html>
config/UserRealm.java
public class UserRealm extends AuthorizingRealm {
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
return null;
}
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
return null;
}
}
config/ShiroConfiguration.java
@Configuration
public class ShiroConfiguration {
// 1. 配置shiroFilterFactoryBean
@Bean(name = "shiroFilterFactoryBean")
public ShiroFilterFactoryBean shiroFilterFactoryBean(DefaultWebSecurityManager defaultWebSecurityManager) {
ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
// 设置安全管理器
bean.setSecurityManager(defaultWebSecurityManager);
bean.setLoginUrl("/login");
bean.setUnauthorizedUrl("/unauthorized");
// 添加shiro的内置过滤器
Map<String, String> filterMap = new LinkedHashMap<>();
filterMap.put("/user/add","anon");
filterMap.put("/user/update","authc");
bean.setFilterChainDefinitionMap(filterMap);
return bean;
}
// 2. 配置DefaultWebSecurityManager
@Bean(name = "defaultWebSecurityManager")
public DefaultWebSecurityManager defaultWebSecurityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(userRealm());
return securityManager;
}
// 3. 配置Realm
@Bean(name = "userRealm")
public UserRealm userRealm() {
return new UserRealm();
}
}
shiro-spring-boot-web-starter
注意坐标
本文向大家介绍一次Linux修改MySQL配置不生效的问题解决,包括了一次Linux修改MySQL配置不生效的问题解决的使用技巧和注意事项,需要的朋友参考一下 背景 自己手上有一个项目服务用的是AWS EC2,最近从安全性和性能方面考虑,最近打算把腾讯云的MySQL数据库迁移到AWS RDS上,因为AWS的出口规则和安全组等问题,我需要修改默认的3306端口和Bind Address限制特定的IP
需要对某个域名下的所有请求速率进行限制,如下配置,设置每个独立的ip每秒只能请求一次,通过geo和map的方式设置白名单,白名单内的ip地址将不做限制,如下配置完成使用jmeter压测发现限制生效了白名单不生效(确认客户端ip没配置错),白名单不生效的原因是什么?
如图所示,好像也没写错呀,然后package.json里是这样写的 在这里先谢谢给位大哥大姐们的回答,小弟感激不尽
配置文件如上,相同的commit message信息,我在本地使用Git提交时,不会触发publish阶段的任务。而在gitlab网页上使用在线IDE进行编辑时,却能正常触发publish阶段,这是什么原因?
本文向大家介绍怎么解决vue动态设置img的src不生效的问题?相关面试题,主要包含被问及怎么解决vue动态设置img的src不生效的问题?时的应答技巧和注意事项,需要的朋友参考一下 这个 不明确,这个应该属于打包工具范畴,和 Vue 没多大关系。可以用一个很简单的例子证明,直接用 script 的形式引入vue,然后更改src的值看能不能访问,麻烦你们弄清楚其中的原理再来解决问题 为什么不把自己
关于跨域配置的问题 如图,我需要调用以下请求访问资源 vue.config.js的配置如下(主要是proxy的配置 可能是哪里配错了,但我看不出问题,希望有人能指出 ps:之前看到有帖子说vue2该配置项名为proxyTable,还有devServer应为dev,这两个我都试过了,前者提示没有该配置项 后者为vue.config.js的提示: