从requireSecure()中排除URL

时间:2018-08-31 15:08:06

标签: spring-security

我有一个应用程序,我想对除一个请求外的所有请求强制使用HTTPS。对于那个URL,我不在乎它是否为HTTP / HTTPS。

我目前具有以下安全配置

http.requiresChannel()
        .antMatchers("/actuator/health").requiresInsecure()
        .antMatchers("/*").requiresSecure();

问题在于,该要求执行器运行状况终结点才能在HTTP上访问,但是我并不真正在乎使用哪种协议(我希望两者都使用)。 在配置授权时,您将拥有allowAll,无论您是否通过了身份验证,它都不会在乎,为什么通道安全性机制与此类似。

有人知道如何从渠道安全机制中排除URL。

2 个答案:

答案 0 :(得分:2)

您可以使用一个正则表达式匹配器来匹配除您要排除的网址之外的所有网址,例如:

http...
 .and()
   .requiresChannel()
   .regexMatchers("^((?!/actuator/health).)*$").requiresSecure();`

请注意,我不是正则表达式专家(可能需要改进)

答案 1 :(得分:1)

我认为您可以尝试这样的事情:

Set rng5 = Sheet1.Range("A2" & ":N" & last_row2)
With Sheet1.Range("A1") .AutoFilter Field:=24, Criteria1:="=" .Select

    For m = 1 To rng5.SpecialCells(xlCellTypeVisible).Rows.Count
        If InStr(rng5.Cells(RowIndex:=m, ColumnIndex:="M").Value, "ABC") > 0 _
        And InStr(rng5.Cells(RowIndex:=m, ColumnIndex:="M").Value, "EFG") = 0 And _
        And InStr(rng5.Cells(RowIndex:=m, ColumnIndex:="W").Value, "123") = 0 _
        And InStr(rng5.Cells(RowIndex:=m, ColumnIndex:="V").Value, "Non") = 0 Then

            rng5.Cells(RowIndex:=m, ColumnIndex:="X").Value = "XYZ"

        ElseIf InStr(rng5.Cells(RowIndex:=m, ColumnIndex:="M").Value, "MNO") > 0 _
        And InStr(rng5.Cells(RowIndex:=m, ColumnIndex:="M").Value, "567") = 0 _
        And InStr(rng5.Cells(RowIndex:=m, ColumnIndex:="W").Value, "123") = 0 _
        And InStr(rng5.Cells(RowIndex:=m, ColumnIndex:="V").Value, "Non ") = 0 Then

            rng5.Cells(RowIndex:=m, ColumnIndex:="X").Value = "UVW"

        End If
    Next m