我在Spring Boot安全方面遇到了一些授权问题。首先是在应用程序中。属性,我键入如下所示的角色查询,
# MySQL Queries for AuthenticationManagerBuilder
spring.queries.users-query = SELECT username, password, role FROM blog_user WHERE username=?
spring.queries.roles-query = SELECT username, role FROM blog_user WHERE username=?
我做了Spring Boot的安全配置
@Configuration
@EnableWebSecurity
public class BlogWebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource dataSource;
@Value("${spring.queries.users-query}")
private String usersQuery;
@Value("${spring.queries.roles-query}")
private String rolesQuery;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// TODO Auto-generated method stub
auth.jdbcAuthentication().usersByUsernameQuery(usersQuery).authoritiesByUsernameQuery(rolesQuery)
.dataSource(dataSource).passwordEncoder(passwordEncoder());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// TODO Auto-generated method stub
http.csrf().disable()
.authorizeRequests()
.antMatchers("/" ,"/home*", "/js/**", "/css/**", "/icon/**", "/users/login", "/users/register").permitAll()
.antMatchers("/users", "/posts/create", "posts/view", "/tags/create").hasAnyRole("USER") // only .permitAll() method makes it work.
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/users/login").defaultSuccessUrl("/")
.usernameParameter("username").passwordParameter("password")
.and()
.logout()
.invalidateHttpSession(true)
.clearAuthentication(true)
.logoutSuccessUrl("/").and()
.exceptionHandling().accessDeniedPage("/error/403");
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
。hasAnyRole(“用户”)
行的效果不好。网站“/users”、“/posts/create”、“posts/view”、“/tags/create”抛出404个错误。我的意思是我的“用户”角色代码有一些问题。当我更改角色方法时。hasAnyRole(“用户”)
到。permitAll()
方法,然后它就可以工作了。如何在系统中输入正确的授权角色代码?
blog_user表中role的值应该以role_作为前缀(即,它应该是role_user)。
Spring Security 4在检查hasRole()时总是添加角色前缀。有关更多信息,请参阅Spring security 3至4迁移指南。
我使用中的此选项在服务器中运行: 我得到这个错误: 分析INI配置文件时出错:未知的选项安全性。
我试图在一个已经设置了基本auth的Spring Boot应用程序中配置CORS。 我在很多地方搜索过,包括这个答案,它指向官方文档中基于过滤器的CORS支持。 到目前为止还没有运气。
我正在使用Google API Client Library for JavaScript(Beta)在Web应用程序上授权用户google帐户(用于youtube操作)。一切正常,但我不知道如何从我的应用程序中“注销”用户,即重置访问令牌。 例如,以下代码检查用户授权,如果没有,则显示弹出窗口,供用户登录帐户并允许web应用程序访问用户数据: 但是客户端库没有重置授权的方法。 有一个变通方法,将
我有一个UBUNTU/APACHE框,当我尝试使用主机名访问web服务器时,它会将我带到DocumentRoot(即/var/www),并显示那里的所有文件/文件夹(如预期的那样)。 在我的 /var/www我有几个文件夹,如 /var/www/devel和var/www/live,我如何更新我的配置,以便当我通过它的主机名[超文本传输协议://servername]击中服务器时,它会进入默认情况
configure脚本支持几种本地配置决策方式。它们是用户指明外部软件的位置,包括或除去可选的特征, 以修改过的名称安装的程序,以及为configure选项设置缺省值的手段。 与外部软件一起工作 有些软件包需要,或者可选地使用其它已经安装的软件包。用户可以把命令行选项传递给configure 以指明使用那个外部软件。选项采用下列形式之一:--with-package[=arg]--without-
3.5 配置站点信息 本节介绍如何配置站点信息,对应Nginx配置文件中的server部分。 站点信息下的映射规则对应着Nginx配置文件中的location部分。 来了一个网络请求,先按照端口和域名进行匹配,找到对应Nginx的哪一个站点配置 ---> 然后按照URL路径匹配该站点配置下的映射规则 ---> 匹配到一个映射规则后,执行映射规则下的指令,对流量进行处理或转发 站点配置流程如下: