以下选项之间有什么区别:
http.sessionManagement().disable()
和
import numpy as np
from nltk.corpus import wordnet
syn1 = wordnet.synsets('speed',pos='n')
syn2 = wordnet.synsets('performance',pos='n')
def getMaxPath(synset1,synset2):
sim=[]
a=[]
b=[]
for i in synset1:
for j in synset2:
sim.append(wordnet.path_similarity(i,j))
a.append(i.name()) # save the names from synsets1 into list
b.append(j.name()) # save the names from synsets2 into list
max_sim=max(sim)
idx=np.argmax(sim)
s1=a[idx] # get the name of synset1 for which path sim is max
s2=b[idx] # get the name of synset2 for which path sim is max
return max_sim, s1, s2
getMaxPath(syn1, syn2)
似乎在第一种情况下会添加SessionManagementFilter并且什么都不做。而在第二种情况下,它根本不会被添加。因此,如果您不需要会话,似乎总是使用第二个选项会更好。但我不确定。
答案 0 :(得分:0)
在行为方面,我注意到,正如您所说,将其设置为STATELESS
会将SessionManagementConfigurer
添加到SecurityBuilder
并将其禁用则只是将null
添加为{配置器。
这会影响在配置安全性时添加的SessionAuthenticationStrategy
个实体。例如,即使对于无状态情况,启用CSRF保护也将添加CsrfAuthenticationStrategy
,但对于禁用的会话管理则不会。{p>
总结:禁用它根本不会执行会话身份验证策略,但是启用它会在无状态情况下对每个经过身份验证的请求执行它。
希望它会有所帮助,这是基于个人经验(配置,尝试错误,调试)的。