zoukankan      html  css  js  c++  java
  • 41.2WebSocket Security网络套接字安全

    Spring Security 4.0+提供了对消息授权的支持。一个有用的具体例子是在基于WebSocket的应用程序中提供授权。

    41.2.1 <websocket-message-broker>

    websocket-message-broker元素有两种不同的模式。如果未指定websocket-message-broker@id,则它将执行以下操作:

    • 请确保任何简单注释方法消息处理程序SimpAnnotationMethodMessageHandler 都将验证原则警报解决程序AuthenticationPrincipalArgumentResolver 注册为自定义参数解决程序。这允许使用@AuthenticationPrincipal来解析当前身份验证的主体
    • 确保安全上下文通道接口SecurityContextChannelInterceptor 为客户端clientInboundChannel自动注册。这将使用在消息中找到的用户填充安全上下文持有者SecurityContextHolder 
    • 确保通道安全接口ChannelSecurityInterceptor 已在客户端通道中注册。这允许为消息指定授权规则。
    • 确保CsrfChannelInterceptor已在客户端通道中注册。这可确保仅启用来自原始域的请求。
    • 确保向WebSocketHttpRequestHandler、TransportHandlingSockJsService或DefaultSockJsService注册了CsrfTokenHandshakeInterceptor。这确保了来自HttpServletRequest的预期CsrfToken被复制到WebSocket会话属性中。

    如果需要额外的控制,可以指定id,并且将为指定的id分配一个通道安全接口。所有与Spring消息传递基础设施的连接都可以手动完成。这更麻烦,但是提供了对配置的更大控制。

    <websocket-message-broker> Attributes

    • id 一个bean标识符,用于引用上下文中其他地方的通道安全接口bean。如果指定,Spring Security要求在Spring Messaging中进行显式配置。如果未指定,Spring Security将自动与消息基础架构集成,如第41.2.1节“网络套接字-消息代理”中所述
    • same-origin-disabled 禁用踏脚标头中出现CSRF令牌的要求(默认为false)。如果有必要允许其他来源建立SockJS连接,更改默认值非常有用。

    Child Elements of <websocket-message-broker>

    41.2.2 <intercept-message>

    为消息定义授权规则。

    Parent Elements of <intercept-message>

    <intercept-message> Attributes

    • pattern 在消息目标上匹配的基于蚂蚁的模式。例如,“/”匹配任何带有目的地的消息;"/admin/"匹配任何目标以"/admin/** "开头的邮件。
    • type 要匹配的消息类型。有效值在简单消息类型中定义(即连接、连接确认、心跳、消息、订阅、取消订阅、断开连接、断开确认、其他)。
    • access 用于保护消息的表达式。例如,“denyAll”将拒绝访问所有匹配的消息;“permitAll”将授予对所有匹配消息的访问权限;" hasRole('ADMIN ')要求当前用户具有匹配消息的角色' ROLE_ADMIN '。
  • 相关阅读:
    Android Studio 开发利器【经常使用插件】
    Eclipse改动Project的文件夹位置
    《信息检索》第8讲 毕业论文学习指导(资源及预习材料)
    Android:使用SparseArray取代HashMap优化性能
    JavaScript初探之——图片移动
    C#趣味程序---九九乘法表
    CoreData使用方法三: NSPredicate在CoreData中的使用
    Eclipse中使用正则屏蔽Logcat中的某些Tag
    给一个int型整数,如何将这个整数的奇偶位互换
    30款基本UX工具
  • 原文地址:https://www.cnblogs.com/jrkl/p/13512392.html
Copyright © 2011-2022 走看看