用于JWT脱机验证的SAP CP安全客户端库

sap-py-jwt的Python项目详细描述


云sapjwt

=====

使用sapjwt验证库的当前二进制文件对sapcp客户端应用程序进行json web令牌(jwt)脱机验证。

这个项目包含jwt绑定。它还包括在xsa平台上运行的本机库。 如果你需要其他平台,请写信给作者。

平台

支持的平台:Windows Linux MacOS

此包包含一个基于cTypes的包装器,可供Python使用sapjwt库

你好世界

这个标准示例来自http://jwt.io

importsapjwtjwtver=sapjwt.jwtValidation()print("SAPJWT version : "+jwtver.getLibraryVersion())jwtver.setVerificationKey("secret")_rc=jwtver.checkToken("eyJhbGciOiJIUzI1NiIsImtpZCI6InRlc3QiLCJ0eXAiOiJKV1QifQ.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOmZhbHNlfQ.b2CDs7y56N9VWUh6wpLBdws-6omVyihJhpnBB7MdHCw")if_rc!=0:print("Validation error: "+jwtver.getErrorDescription())else:print("Validation key-Id from JWT: "+jwtver.getKeyId())print("Validation succeeded, payload from JWT: "+jwtver.getPayload())

入门

不应包含此项目,但应将sap-xssec包含为api项目。此项目为本机 JWT的验证库。 从您的项目目录中,运行(有关要求,请参见下面的内容):

fromsapimportxssec

错误情况

签名操作的标准错误是签名无效。这个错误是典型的,您应该处理 小心点!而不是致命的错误或断言。 如果您认为,它必须工作,但它不工作,那么您可以跟踪本机函数。 sapssoext库允许您设置环境变量:

  • sap_ext_trc在文件系统中定义跟踪文件
  • sap_ext_trl一个0到3的整数
set SAP_EXT_TRC=stdout
set SAP_EXT_TRL=3

如果在cloudfoundry或xsa中运行应用程序,则可以使用客户机命令工具cf/xs定义环境变量,请参见 https://docs.run.pivotal.io/devguide/deploy-apps/manifest.html#env-block

在cf环境中,您可以cf logs<;your app>;然后您将看到来自jwt验证的跟踪

通过PIP安装

要配置SAP PYPI注册表,您需要发出以下命令:

pip install --user sap_xssec

如果尚未配置任何SAP PYPI注册表,请使用此调用:

pip install sap_xssec

cf部署

将python代码部署到cloudfoundry执行“pip install”。软件包sap_xssec依赖于供应商的软件包,这意味着它在公共存储库中不可用。解决方案是使用本地供应商文件夹进行部署,请参见 https://docs.cloudfoundry.org/buildpacks/python/index.html#vendoring

您的应用程序应该有一个所谓的requirements.txt文件。在这个文件中,您定义了您的依赖项,例如sap_xssec(这个包包括sap_py_jwt)。因此,在推送到cf之前,您需要创建一个本地供应商文件夹,并将所有依赖的二进制文件放入该文件夹。

push命令将整个本地文件夹上载到cf,然后python构建包从vendor文件夹安装私有包。

已知问题

此项目为云平台提供二进制语言绑定。Linux x64可以用于依赖于Linux的Debian派生的Docker映像中。当前没有可用的alpine二进制文件,因为链接器不同,请参见https://www.musl-libc.org/

许可证

版权所有(c)2019 SAP SE或SAP关联公司。保留所有权利。除非LICENSE文件中另有说明,否则此项目是根据sap示例代码许可证授权的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用“Wed,01 Jul 2015 17:32:41 EDT”解析字符串   java Storm apache升级(1.0.0到2.0.0)   java类驻留在不同的目录中,而不是包指定的目录。为什么?   将Java中的图像缩放到非常小的维度   java如何通过子文档从自定义方面访问ElasticSearch parentdoc字段   java如何在RationalSoftwareArchitect中使用findbugs?   Java中的事件提升处理   java值被添加到arrayList的所有索引中,而不是在“”时添加到最后一个索引中。正在使用arraylist的add()方法   JFrame中的java JPanel派生类   java如何用循环和异步方法模拟类   java Android阻止可绘制背景超出视图范围   为客户排序Java阵列   java Apache poi如何将工作表设置为枚举位置值属性?   java Rhino在使用自定义类参数调用javascript函数时出错   java格式化日期从年月日到年月日   spring如何修复java。lang.illegalargumentexception在此特定场景中是否尝试创建具有null实体的合并事件?   java如何创建更好的对象