我有两个RESTendpoint:
/noauth/rest/sayhi
/rest/auth/getmsg
我想只为/rest/auth/getmsg
提供登录,并直接访问/noauth/rest/sayhi
。
当我在WebSecurityConfigurerAdapter.Configure(HTTPSecurityHTTP)
中使用以下模式时
@EnableWebSecurity
@Configuration
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("Java Techie")
.password("Password")
.roles("ADMIN");
auth
.inMemoryAuthentication()
.withUser("Basant")
.password("Password2")
.roles("USER");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/rest/**").authenticated()
.anyRequest().permitAll()
.and()
.httpBasic();}
}
}
我只在/rest/auth/getmsg
中得到登录提示,而在/noauth/rest/sayhi
中没有得到,这是预期的。
但是当我使用下面的模式时,我得到了/rest/auth/getmsg
和/noauth/rest/sayhi
的登录提示,这对我来说是非常意外的。
http
.authorizeRequests()
.anyRequest().authenticated()
.antMatchers("/rest/**").permitAll()
.and()
.httpBasic();`
我已经知道我做错了什么,所以我想知道为什么我不能只登录/rest/auth/getmsg
和直接访问/noauth/rest/sayhi
。
更新
@Nully这有一定的意义,但却打破了我对其他情况的理解。假设我使用这个模式:
http
.authorizeRequests()
.anyRequest().authenticated()
.anyRequest().hasRole("ADMIN")
.and()
.httpBasic();`
只允许user=“java Techie”登录,因为它是admin
并为user=“basant”抛出403 biabled
。
但当我用
http
.authorizeRequests()
.anyRequest().authenticated()
.antMatchers("/rest/**").hasRole("ADMIN")
.and()
.httpBasic();
根据您的解释,它不应该允许user=“basant”访问/rest/auth/getmsg
,因为它具有role=“user”
。但实际上它允许我在使用user=“basant”时访问/rest/auth/getmsg
。
默认情况下,如果没有其他规则,则需要身份验证。您应该添加类似antmatchers(“/noauth/**”).PermitAll()
的内容。
参见文档“10. Web”部分
问题内容: servlet是线程安全的吗?例如,如果我打开5个不同的浏览器并向容器中的一个servlet发送请求,它是否仍然是线程安全的,我特别指的是方法 问题答案: 您的问题可以归结为: 正在从同一对象线程safe上的多个线程调用方法 。答案是: 取决于 。如果您的对象(让它成为servlet)是无状态的或仅具有字段,则这是完全线程安全的。局部变量和参数是线程局部的(驻留在堆栈上,而不是堆上)。
QQ群里反馈有这些问题及解决方法 Maven下报配置文件未能找到 -- 提前添加log4j的配置文件到resources文件夹 MyEclipse下修改UTF-8编码无效 -- 在配置里面修改workspace的编码,及tomcat的JVM启动参数(加入-Dfile.encoding=utf-8) Maven项目 在nutz-book-project的源码中, 有pom.xml 推荐的maven
本文向大家介绍说明基于现金的会计。,包括了说明基于现金的会计。的使用技巧和注意事项,需要的朋友参考一下 基于现金的会计手段,它仅记录与现金相关的交易。这意味着收支交易仅在通过现金付款或收款时记录。它是单项会计。 这对于简单的会计系统很有用。 如果要评估库存,则使用它。 当不需要审核时,它很有用。 在服务业务中很有用。 以下是公司偏爱现金会计的原因- 单项记帐。 金融交易很少。 员工很少。 宝贵的有
Navicat 提供强大的工具让你管理服务器用户帐号和数据库对象的权限。所有用户和权限的信息都保存于服务器。在主窗口中,点击 “用户”或 “角色”来打开用户或角色的对象列表。
Navicat 提供强大的工具让你管理服务器用户帐号和数据库对象的权限。所有用户和权限的信息都保存于服务器。在主窗口中,点击 “用户”来打开用户或角色的对象列表。