我不明白这种方法是如何工作的.我运行该recur方法,输出从98开始,增加,我似乎无法理解后来发生了什么.我期望的输出是:
a=98
a=99
a=99
a=100
a=100
a=101
Run Code Online (Sandbox Code Playgroud)
但实际输出是:
a=98
a=99
a=100
a=101
a=100
a=99
Run Code Online (Sandbox Code Playgroud)
我在本地java测试论坛中找到了这个练习.所以,任何解释都对我有用.
public class Test {
public static void main(String[] args) {
recur(98);
}
public static void recur(int a) {
if (a <= 100) {
System.out.println("a=" + a);
recur(++a);
System.out.println("a=" + a);
}
}
Run Code Online (Sandbox Code Playgroud) 我喜欢使用 spring-security-saml2-service-provider 的想法 - 来自文档: https ://docs.spring.io/spring-security/reference/5.6.0-RC1/servlet/saml2/index.html spring-security-saml2-core 的它看起来少了很多样板,但是当我从 Okta 管理应用程序发送应用程序嵌入链接时,我收到 400 响应。通过调试看来
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
AbstractSaml2AuthenticationRequest authenticationRequest = this.authenticationRequestResolver.resolve(request);
if (authenticationRequest == null) {
filterChain.doFilter(request, response);..}
Run Code Online (Sandbox Code Playgroud)
无法解析传入的请求,但我不确定它是否相关。我的 yml 配置:
security:
saml2:
relyingparty:
registration:
okta:
identityprovider:
entity-id: http://www.okta.com/exk1juy5xrR5BsW44697
verification.credentials:
- certificate-location: "classpath:saml/okta.cert"
singlesignon.url: https://trial-8410773.okta.com/app/trial-8410773_templatemanager_2/exk1juy5xrR5BsW44697/sso/saml
singlesignon.sign-request: false
assertingparty.metadata-uri: https://trial-8410773.okta.com/app/trial-8410773_templatemanager_2/exk1juy5xrR5BsW44697/sso/saml/metadata
Run Code Online (Sandbox Code Playgroud)
我的 Okta 配置:
GENERAL
Single Sign On URLhttp://localhost:8080/api/v1/saml2/SSO
Requestable SSO URLsURLIndex
http://localhost:8080/api/v1/saml2/SSO0Recipient URLhttp://localhost:8080/api/v1/saml2/SSODestination URLhttp://localhost:8080/api/v1/saml2/SSOAudience Restrictionhttp://localhost:8080/saml/metadata
Run Code Online (Sandbox Code Playgroud)
我还提供了 saml 身份验证的端点:
@RequestMapping(SsoAuthenticationController.BASE_NAME)
public interface SsoAuthenticationController { …Run Code Online (Sandbox Code Playgroud)