fortify / fcli

fcli is a command-line utility for interacting with various Fortify products
https://fortify.github.io/fcli/
Other
31 stars 17 forks source link

proxy issue when running commands #346

Closed xakrurychle closed 1 year ago

xakrurychle commented 1 year ago

proxy settings

 ./fcli config proxy add qa-sh-mail.prgqa.hpecorp.net:8081
 Name                               Priority  Proxy host                    Proxy port  Proxy user  Proxy password  Modules  Modules match mode  Target host names  Target host names match mode
 qa-sh-mail.prgqa.hpecorp.net:8081  0         qa-sh-mail.prgqa.hpecorp.net  8081        N/A         ****            N/A      include             N/A                N/A

proxy log

CONNECT   Jul 14 15:03:58 [22503]: Connect (file descriptor 6): qa-st-c7-kho01.qa.ssc.localdomain [15.137.1.217]
CONNECT   Jul 14 15:03:58 [22503]: Request (file descriptor 6): CONNECT qa-plg-ssc7.prgqa.hpecorp.net:8443 HTTP/1.1
INFO      Jul 14 15:03:58 [22503]: No upstream proxy for qa-plg-ssc7.prgqa.hpecorp.net
CONNECT   Jul 14 15:03:58 [22503]: Established connection to host "qa-plg-ssc7.prgqa.hpecorp.net" using file descriptor 8.
INFO      Jul 14 15:03:58 [22503]: Not sending client headers to remote machine
INFO      Jul 14 15:03:58 [22503]: Closed connection between local client (fd:6) and remote client (fd:8)

command ./fcli ssc appversion list --session notMySSCInstance

stderr

kong.unirest.UnirestConfigException: Http Clients are already built in order to build a new config execute Unirest.config().reset() before changing settings.
This should be done rarely.
        at kong.unirest.Config.validateClientsNotRunning(Config.java:902)
        at kong.unirest.Config.proxy(Config.java:205)
        at kong.unirest.Config.proxy(Config.java:231)
        at com.fortify.cli.common.http.proxy.helper.ProxyHelper.lambda$configureProxy$1(ProxyHelper.java:32)
        at java.base@17.0.7/java.util.Optional.ifPresent(Optional.java:178)
        at com.fortify.cli.common.http.proxy.helper.ProxyHelper.configureProxy(ProxyHelper.java:31)
        at com.fortify.cli.ssc.entity.token.helper.SSCTokenHelper.configureUnirest(SSCTokenHelper.java:151)
        at com.fortify.cli.ssc.output.cli.mixin.SSCProductHelperMixin.configure(SSCProductHelperMixin.java:55)
        at com.fortify.cli.ssc.output.cli.mixin.SSCProductHelperMixin.configure(SSCProductHelperMixin.java:33)
        at com.fortify.cli.common.session.cli.mixin.AbstractSessionUnirestInstanceSupplierMixin.getUnirestInstance(AbstractSessionUnirestInstanceSupplierMixin.java:30)
        at com.fortify.cli.ssc.output.cli.cmd.AbstractSSCOutputCommand.getUnirestInstance(AbstractSSCOutputCommand.java:30)
        at com.fortify.cli.ssc.output.cli.mixin.AbstractSSCBulkEmbedMixin.transformInput(AbstractSSCBulkEmbedMixin.java:34)
        at com.fortify.cli.common.output.writer.output.standard.StandardOutputConfig.lambda$inputTransformer$0(StandardOutputConfig.java:43)
        at com.fortify.cli.common.output.writer.output.standard.StandardOutputConfig.lambda$applyTransformations$4(StandardOutputConfig.java:73)
        at java.base@17.0.7/java.util.stream.ReduceOps$1ReducingSink.accept(ReduceOps.java:80)
        at java.base@17.0.7/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
        at java.base@17.0.7/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base@17.0.7/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base@17.0.7/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
        at java.base@17.0.7/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base@17.0.7/java.util.stream.ReferencePipeline.reduce(ReferencePipeline.java:667)
        at com.fortify.cli.common.output.writer.output.standard.StandardOutputConfig.applyTransformations(StandardOutputConfig.java:73)
        at com.fortify.cli.common.output.writer.output.standard.StandardOutputConfig.applyInputTransformations(StandardOutputConfig.java:64)
        at com.fortify.cli.common.output.writer.output.standard.StandardOutputWriter.writeRecords(StandardOutputWriter.java:164)
        at com.fortify.cli.common.output.writer.output.standard.StandardOutputWriter.writeRecords(StandardOutputWriter.java:150)
        at com.fortify.cli.common.output.writer.output.standard.StandardOutputWriter.lambda$writeRecords$1(StandardOutputWriter.java:139)
        at java.base@17.0.7/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
        at java.base@17.0.7/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
        at java.base@17.0.7/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
        at java.base@17.0.7/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
        at java.base@17.0.7/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
        at java.base@17.0.7/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
        at java.base@17.0.7/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
        at java.base@17.0.7/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
        at java.base@17.0.7/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
        at kong.unirest.PagedList.ifSuccess(PagedList.java:52)
        at com.fortify.cli.common.output.writer.output.standard.StandardOutputWriter.writeRecords(StandardOutputWriter.java:139)
        at com.fortify.cli.common.output.writer.output.standard.StandardOutputWriter.write(StandardOutputWriter.java:102)
        at com.fortify.cli.common.output.cli.mixin.AbstractOutputHelperMixin.write(AbstractOutputHelperMixin.java:68)
        at com.fortify.cli.common.output.cli.cmd.AbstractOutputCommand.run(AbstractOutputCommand.java:31)
        at picocli.CommandLine.executeUserObject(CommandLine.java:2104)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2539)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2531)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2493)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2351)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2495)
        at picocli.CommandLine.execute(CommandLine.java:2248)
        at com.fortify.cli.app.FortifyCLI.execute(FortifyCLI.java:74)
        at com.fortify.cli.app.FortifyCLI.main(FortifyCLI.java:56)

without proxy everything works fine

fcli version 0.20230629.082654-dev_develop, built on 2023-06-29 08:27:42

rsenden commented 1 year ago

We'll need to investigate and try to reproduce; looks like fcli is trying to apply proxy settings after the connection has already been configured/used.

xakrurychle commented 1 year ago

./fcli ssc appversion list --session notMySSCInstance

I ran this defect again using fcli version 0.20230724.130839-dev_develop, built on 2023-07-24 13:09:20 and have not had any issues yet. Since this is still open I assume there was some other change that fixed this too.

rsenden commented 1 year ago

@xakrurychle Thanks for confirming that you can't reproduce the issue anymore, so will close this.