You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DocuSign JWT登录异常及免登录访问eg011页面求助

问题解决指南

一、Tomcat部署war后JWT登录失效的修复步骤

  • 检查私钥文件路径:STS运行时项目根目录是代码目录,但Tomcat部署后工作目录是Tomcat的bin目录,代码里如果用相对路径加载private.key会找不到。把私钥文件放到src/main/resources下,代码里改用classpath:private.key加载,或者在application.properties里配置绝对路径。
  • 同步环境变量配置:STS里设置的DS_CLIENT_ID、DS_IMPERSONATED_USER_ID、DS_AUTH_SERVER等JWT参数,Tomcat启动时可能没加载。把这些参数写到src/main/resources/application.properties里,或者在Tomcat的catalina.bat(Windows)/catalina.sh(Linux)里添加环境变量,比如set DS_CLIENT_ID=你的客户端ID。
  • 调整Session/Cookie配置:如果项目依赖Session存储认证状态,Tomcat默认的Cookie路径可能和项目上下文路径不匹配。在application.properties里添加server.servlet.session.cookie.path=/你的项目上下文路径(如果war包名是code-examples-java,路径就是/code-examples-java),确保Cookie能正常传递。
  • 查看Tomcat日志定位问题:打开Tomcat安装目录下的logs/catalina.out,搜索JWT、auth相关的报错信息,比如私钥加载失败、token生成异常、API请求401/403,这些日志能直接告诉你问题根源。

二、让eg011页面无需登录直接访问的配置

  • 放行Spring Security拦截:找到项目里的SecurityConfig类(如果用了Spring Security),修改configure(HttpSecurity http)方法,添加对eg011路径的放行规则:
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .antMatchers("/eg011/**").permitAll() // 允许所有人访问eg011相关路径
            .anyRequest().authenticated()
            // 保留原有其他配置(比如登录页、退出逻辑等)
            .and()
            .formLogin() // 原有登录配置
            .loginPage("/login")
            .permitAll();
    }
    
  • 移除Controller里的认证校验:打开Eg011Controller.java,找到里面判断用户是否登录的代码(比如if (!isAuthenticated())),直接删除这段校验逻辑,让请求进来就执行业务代码。
  • 提前初始化JWT API客户端:如果eg011需要调用DocuSign API,不要等用户登录才初始化客户端。创建一个配置类,在项目启动时通过JWT提前获取token并初始化ApiClient,把ApiClient注入到Eg011Controller里,这样页面就能直接调用API,不用依赖登录状态。

内容的提问来源于stack exchange,提问作者scl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:42:48