我使用带有嵌入式Tomcat和Spring Boot Starter安全性的Spring Boot 1.2.1。此外,我对一些Web服务使用RestController,我希望只有具有特定角色的特定用户才能访问这些Web服务。但是它不起作用,安全性不使用RoleVoter来检查角色。在下面的示例中,用户“user”可以访问Web服务,尽管他没有正确的角色!
首先我的应用程序配置
@Configuration
@EnableJms
@ImportResource( "classpath:net/bull/javamelody/monitoring-spring.xml" )
@EnableAspectJAutoProxy
@ComponentScan
@PropertySource( "classpath:application.properties" )
@EnableAutoConfiguration
@EnableGlobalMethodSecurity( securedEnabled = true )
public class ItemConfiguration { ... }
现在是我的安全配置
@Configuration
@EnableWebSecurity
@Order( SecurityProperties.ACCESS_OVERRIDE_ORDER )
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure( AuthenticationManagerBuilder auth ) throws Exception {
auth.inMemoryAuthentication().withUser( "user" ).password( "password" ).roles( "USER" );
}
@Override
protected void configure( HttpSecurity http ) throws Exception {
http.authorizeRequests().anyRequest().fullyAuthenticated();
http.httpBasic();
http.csrf().disable();
}
}
恢复控制器
@RestController
public class QueryController {
@Secured( { "ROLE_ADMIN" } )
@RequestMapping( value = "/", method = { POST }, consumes = { MediaType.APPLICATION_JSON_VALUE },
produces = MediaType.APPLICATION_JSON_VALUE )
ResponseEntity< List< BaseEntity > > query( @RequestBody @Valid final ItemQueryRequestData request )
throws Exception {
return new ResponseEntity<>( "", HttpStatus.OK );
}
}
应用性质
spring.data.mongodb.database = item
spring.data.mongodb.host = ${MONGODB_URI:pimpoc01}
spring.data.mongodb.port = ${MONGODB_PORT:27017}
spring.activemq.broker-url=${BROKER_URL:tcp://pimpoc01:61616}
spring.activemq.user=
spring.activemq.password=
spring.activemq.pooled=true
queue.item.in.channelId = item-in
queue.item.in.concurrentConsumers = 1
queue.item.in.destination = item-in
queue.itemOption.in.channelId = itemOption-in
queue.itemOption.in.concurrentConsumers = 1
queue.itemOption.in.destination = itemOption-in
queue.style.in.channelId = style-in
queue.style.in.concurrentConsumers = 1
queue.style.in.destination = style-in
queue.concurrentConsumers = 50
queue.dataCreation.response = dataCreationResponse
queue.structureAttributeValue.in.channelId = structureAttributeValue-in
queue.structureAttributeValue.in.concurrentConsumers = 1
queue.structureAttributeValue.in.destination = structureAttributeValue-in
validation.endpoint = ${VALIDATOR_URI:http://pimpoc01:8080/validator}
感谢任何帮助!
我遇到了一个类似的问题,通过公开我的控制器方法,即makeQueryController,解决了这个问题。查询
方法公共。
从安全配置中删除下面的行。我认为,@Order
注释覆盖了基本身份验证。
@Order( SecurityProperties.ACCESS_OVERRIDE_ORDER )
我有时会在pom中看到以下声明。xml。。。 如您所见,sping-boo-starter-web被声明为tomcat-embed-jasper。 是不是sping-boo-starter-web已经有一个嵌入式tomcat了?为什么一些开发人员仍然声明tomcat-embed-jasper以及boot-starter-web?还是有什么原因?
null ServerEndpoint: 谢谢你。
我试图保护我的Spring启动应用程序(1.21)看起来像我的antMatcher("/报告**"). hasRole("报告")的一些URL模式被忽略。 e、 g.如果我浏览到localhost:9000/report/books之类的内容,我需要登录,它只适用于我的用户名密码组合,但我没有将角色报告设置为我的用户“user”。所以我希望我不被允许访问报告网站,但页面会显示出来。 我必须如何更改
我试图让Spring Boot中的嵌入式Tomcat记录到我的Log4J2配置中,但它不起作用。 根据这个与外部Tomcat打交道的答案:https://stackoverflow.com/a/28639068/1845463似乎有必要将一些罐子移到$Catalina_home/libs等。我认为这在Spring Boot中是不可能的,不是吗? 有人设法让log4j2运行,并能够为catalina
我正在尝试使用tomcat设置kerberos/spnego身份验证。我在tomcat目录下添加了一个krb5.conf文件,在SpnegoFilterConfig中读取值并设置java.security.krb5.conf,但是似乎没有考虑到这一点。无论文件是否存在,我都会得到相同的结果。 如果我把jce安全文件放在lib/security中,我会得到 然而,无论我是否拥有krb5.conf,这
问题内容: 我想查找包含字符串的行,如下所示: 但是,这失败了,因为某些元素是NaN: ValueError:无法使用包含NA / NaN值的向量建立索引 所以我诉诸于混乱 有没有更好的办法? 问题答案: 有一个标志: 参见文档: na:默认NaN,填充缺失值的值。 因此,您可以执行以下操作: