我使用创建了插件
class ImplB : virtual public IB{};
class ID : virtual public IB{};
atlassian-connect.json
mvn archetype:generate -DarchetypeGroupId=com.atlassian.connect -DarchetypeArtifactId=atlassian-connect-spring-boot-archetype -DarchetypeVersion=1.5.1
我正在尝试访问我的API
{...
"scopes": [
"read", "write"
],
"authentication": {
"type": "jwt"
},
"lifecycle": {
"installed": "/installed",
"uninstalled": "/uninstalled"
},
"enableLicensing": false,
"modules": {
"generalPages": [
{
"key": "comments",
"location": "system.top.navigation.bar",
"name": {
"value": "Comments"
},
"url": "/rest/api",
"conditions": [{
"condition": "user_is_logged_in"
}]
}
]
}
}
如何在JS端获取jwt(最好进行描述
如果可以的话,一步一步地简化插件(我检查了很多示例链接,但是…))?
答案 0 :(得分:1)
您要在atlassian-connect.json
文件中声明一个HTML页面,即“注释”常规页面。因此,如果有人打开该页面,您可以生成一个JWT,并将其注入HTML文档中,然后 将其返回给用户/请求者。然后,您可以在JavaScript代码中使用此JWT。由于您似乎正在使用Spring Boot模板,因此应该查看repositories readme file中的“验证从iframe内容到附加组件的请求”部分。这正是在描述您的情况。
另一种选择是基于您从Connect应用程序(如Jira或Confluence)接收到的JWT生成JWT。但是,这还有更多工作要做。我可以建议阅读有关如何获取a valid JWT from the Connect application within JavaScript以及installation handshake phase的工作方式的信息。基于这些,您可以生成自己的JWT。
但是,在所有情况下,请注意,您不会为每个请求生成一个新令牌,而是为一个会话生成一个新令牌,因此您可以将令牌用于多个请求。我建议使用选项a),因为Sprint Boot Connect模板已经支持它。