ABAP Netweaver, Hybris Commerce和SAP 云平台的登录认证
ABAP Netweaver
在事务码SICF里选择一个服务,在明细页面对Procedure字段点击F1,查看Logon Procedure的帮助文档。
通过这个链接打开对应的帮助文档,可以看到下列七种登录手段。
在我的SAP Community博客里有更详细的介绍:Learn more detail about Standard logon procedure
Hybris Commerce
在Hybris Administration Console里,输入用户名和密码,点击LOGIN后:
在Chrome开发者工具里观察到一个post请求: j_spring_security_check
这个请求定义在一个form action里,还有两个字段用于存储用户输入的用户名和密码:
在Tomcat的日志文件里也能观察到这个post请求:
在hac目录的config文件夹下有一个配置文件spring-security-config.xml:
里面定义了用这个bean,coreAuthenticationProvider来做认证:
SAP云平台CloudFoundry环境
在SAP云平台的CloudFoundry环境里,Application Router作为所有应用访问的入口。
上图1~8的图例描述了部署在SAP云平台CloudFoundry环境上的Web应用是如何通过Cloud Connector访问On-Premise系统上的服务。
- App Router作为用户访问的入口。
- 用户访问请求被重定向到XSUAA。XSUAA要求用户登录。用户完成登录操作后,一个JSON Web Token(简称为JWT1)被创建,发送给App Router,并缓存于App Router内。
- App Router将请求和步骤2生成的JSON Web Token一起转发给Web应用。
4a. Web应用再次向XSUAA请求一个JSON Web Token(JWT2), 用于访问destination实例。
4b. Web应用并行地向XSUAA请求第三个JSON Web Token(JWT3),用于connectivity实例的访问。 - Web应用使用JWT2获取destination配置。
- Web将请求和JWT3转发给connectivity实例。
- SAP Cloud Platform Connectivity将请求通过Secure tunnel转发给Cloud Connector。
- Cloud Connector将请求发给On-Premise system。
App Router怎么知道需要把请求转发给具体哪一个XSUAA实例呢?在App Router的manifest.yml里配置
需要在SAP云平台CloudFoundry环境的space里配置同名的实例:
App Router更多详细介绍,请参考李贝宁的公众号文章SAP成都研究院李三郎:SCP Application Router简介.
Netweaver
Jerry的SAPGUI收藏夹管理工具:链接
git
我笔记本上有很多github仓库,每次切换仓库,我不想敲很长的cd命令。比如现在我需要手敲下面的命令进入一个Java仓库:
cd c:\Users\i042416\git\JavaTwoPlusTwoEquals5
我想只敲四个字符:java 就达到同样效果。
解决方案
编辑用户目录下的文件.bash_profile:定义一些新的function,将冗长的cd命令加入function的实现。
效果:敲“java”,回车,即自动进入java仓库。
如何处理CloudFoundry应用部署时遇到的254错误
使用SAP云平台的CloudFoundry部署应用:
在cockpit遇到错误信息:instance: a0abe2b5-7623-4cf1-4c65-0c79, index: 0, exit_description: APP/PROC/WEB: Exited with status 254, reason: CRASHED
使用命令查看部署日志:
cf logs connectvity-demo-approuter --recent
2018-05-30T11:33:30.95+0800 [CELL/0] OUT Starting health monitoring of container
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! Linux 4.4.0-119-generic
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! argv “/home/vcap/deps/0/node/bin/node” “/home/vcap/deps/0/bin/npm” “start”
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! node v6.13.1
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! npm v3.10.10
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! path /home/vcap/app/package.json
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! code ENOENT
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! errno -2
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! syscall open
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! enoent ENOENT: no such file or directory, open ‘/home/vcap/app/package.json’
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! enoent ENOENT: no such file or directory, open ‘/home/vcap/app/package.json’
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! enoent This is most likely not a problem with npm itself
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! enoent and is related to npm not being able to find a file.
2018-05-30T11:33:31.68+0800 [APP/PROC/WEB/0] ERR npm ERR! enoent
2018-05-30T11:33:31.69+0800 [APP/PROC/WEB/0] ERR npm ERR! Please include the following file with any support request:
发现原因是build时找不到package.json. 但我确认我部署的zip文件里存在package.json
解决方案
使用CLI进行部署:
cf push -f ./approuter-manifest.yml
问题解决:
- 点赞
- 收藏
- 关注作者
评论(0)