弹簧 websocket 没有弹簧安全

Posted

技术标签:

【中文标题】弹簧 websocket 没有弹簧安全【英文标题】:spring websocket no spring security 【发布时间】:2016-12-20 10:46:09 【问题描述】:

我通过 stomp 和 spring 消息使用了 spring websocket。 我不喜欢使用弹簧安全。 当我使用时:

SimpMessageSendingOperations.convertAndSendToUser(username,"");

我必须:

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter 

    @Override
    protected void configure(HttpSecurity http) throws Exception 
        http
            .csrf().disable()  // Refactor login form
            // See https://jira.springsource.org/browse/SPR-11496
            .headers().addHeaderWriter(
                new XFrameOptionsHeaderWriter(
                        XFrameOptionsHeaderWriter.XFrameOptionsMode.SAMEORIGIN)).and()
            .formLogin()
                .defaultSuccessUrl("/index.html")
                .loginPage("/login.html")
                .failureUrl("/login.html?error")
                .permitAll()
                .and()
            .logout()
                .logoutSuccessUrl("/")
                .logoutUrl("/logout.html")
                .permitAll()
                .and()
            .authorizeRequests()
                .antMatchers("/static/**").permitAll()
                .antMatchers("/webjars/**").permitAll()
                .anyRequest().authenticated()
                .and();
    


    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception 
        auth
            .inMemoryAuthentication()
                .withUser("lihui").password("1234").roles("USER").and()
                .withUser("paulson").password("bond").roles("ADMIN","USER");
    

那么,我该怎么办?请帮忙。

【问题讨论】:

您对此有何不满意?我看不出这有什么问题?您使用 Spring Security,因此您必须对其进行配置。同样使用 WebSockets 并发送给用户并不绑定到 Spring Security(afaik 它使用主体)所以再次不确定这里的问题是什么(你的问题描述得不够清楚)。 我想在没有弹簧安全的情况下使用弹簧 websocket 和 stomp。 【参考方案1】:

//when i not useing spring security.i can used
simpMessageSendingOperations.convertAndSendTo(usename,"queue/"+usename+"/greating",object);
//and client like this:
stompClient.subscribe('/queue/'++usename+'greetings', function (greeting) 
      showGreeting(JSON.parse(greeting.body).content);
    );

【讨论】:

以上是关于弹簧 websocket 没有弹簧安全的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在没有弹簧安全的情况下使用弹簧过滤器链?

openshift + 弹簧 websocket

websocket弹簧启动设置

弹簧安全过滤器没有启动

弹簧安全 AntMatcher 不工作

没有弹簧安全性的 ldap 和 JWT 身份验证