天道酬勤,学无止境

技术分享

使用 api 密钥访问 JIRA API,无需用户名和密码(Access JIRA API with api key without username and password)

问题 目前我正在使用用户名和密码访问 C#.Net 应用程序中的 JIRA API。 但是即使没有散列的用户名和密码,我也需要在不输入用户名和密码的情况下访问 JIRA API。 有什么方法可以创建 API 密钥并使用它访问 JIRA API? 回答1 是的,JIRA 为此支持 OAuth,请参阅:https://developer.atlassian.com/display/JIRADEV/JIRA+REST+API+Example+-+OAuth+authentication 不幸的是,没有提供 C# 示例代码,但您应该能够从这里的其他编程语言中组装一个解决方案:https://bitbucket.org/atlassian_tutorial/atlassian-oauth-examples/src 无论如何,您应该使用通用 OAuth 库。 回答2 当您需要实际用户登录并且您处于浏览器的上下文中时,Oauth 非常有用。 但是,对于未链接到任何特定用户(例如 CI)的服务器到服务器通信,您可能希望在您的 jira 服务器上创建一个“bot”帐户并使用 API 令牌进行身份验证。 此处描述了令牌的创建:https://confluence.atlassian.com/cloud/api-tokens-938839638.html 然后您可以使用 [user-email]

2021-06-21 12:33:26   authentication   jira   jira-rest-api

如何从 url 字符串中删除端口号(How to remove the port number from a url string)

问题 我有以下代码片段: string tmp = String.Format("<SCRIPT FOR='window' EVENT='onload' LANGUAGE='JavaScript'>javascript:window.open('{0}');</SCRIPT>", url); ClientScript.RegisterClientScriptBlock(this.GetType(), "NewWindow", tmp); 此代码生成的 URL 包含端口号,我认为这是因为网站使用了端口 80,在此代码中,我试图从网站的虚拟目录加载页面。 关于如何抑制此代码生成的 URL 字符串中的端口号的任何想法? 回答1 使用 Uri.GetComponents 方法。 要删除端口组件,您必须组合所有其他组件,例如: var uri = new Uri( "http://www.example.com:80/dir/?query=test" ); var clean = uri.GetComponents( UriComponents.Scheme | UriComponents.Host | UriComponents.PathAndQuery, UriFormat.UriEscaped ); 编辑:我找到了一个更好的方法: var clean = uri

2021-06-21 12:33:21   c#   asp.net

Pylint 找不到 SQLAlchemy 查询成员(Pylint can't find SQLAlchemy query member)

问题 我有一个使用 Flask-SQLAlchemy (v2.0) 的 Flask (v0.10.1) 应用程序,我正在尝试配置 Pylint 来检查它。 使用 Python 3.4.2 运行。 第一个错误是: Instance of 'SQLAlchemy' has no 'Table' member (no-member) 我修复了这个忽略 SQLAlchemy 成员属性检查的问题: ignored-classes=SQLAlchemy 但是我在实体上的查询成员有问题: Class 'UserToken' has no 'query' member (no-member) 有没有办法解决这个问题,而不必忽略每次查询调用时的非成员错误? 烧瓶引导程序: from flask import Flask from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() app = Flask(__name__) db.init_app(app) app.run() UserToken 实体: from app import db class UserToken(db.Model): user_token_id = db.Column(db.Integer, primary_key=True, index=True) token

2021-06-21 12:33:17   python   python-3.x   sqlalchemy   flask-sqlalchemy   pylint

如何在 Python 中解锁“安全”(读保护)PDF?(How to unlock a “secured” (read-protected) PDF in Python?)

问题 在 Python 中,我使用 pdfminer 从带有此消息下方代码的 pdf 中读取文本。 我现在收到一条错误消息: File "/usr/local/lib/python2.7/dist-packages/pdfminer/pdfpage.py", line 124, in get_pages raise PDFTextExtractionNotAllowed('Text extraction is not allowed: %r' % fp) PDFTextExtractionNotAllowed: Text extraction is not allowed: <cStringIO.StringO object at 0x7f79137a1 ab0> 当我用 Acrobat Pro 打开这个 pdf 时,它被证明是安全的(或“读保护”)。 但是,从此链接中,我了解到有许多服务可以轻松禁用此读取保护(例如 pdfunlock.com。在深入研究 pdfminer 的源代码时,我看到在这些行上生成了上述错误。 if check_extractable and not doc.is_extractable: raise PDFTextExtractionNotAllowed('Text extraction is not allowed: %r' % fp)

2021-06-21 12:32:21   python   pdf   pdfminer   pdf-scraping

单击网格视图android时打开全屏图像(Open full Screen Image when clicked on grid view android)

问题 // This is my On click function which opens New activity for image view. @Override public void onClick(View v) { Intent intent = new Intent(activity, ImageDisplayActivity.class); intent.putExtra("id", position+1); 下面我得到了被点击的文件的路径。 intent.putExtra("position", String.valueOf(getItem(position))); Log.d("ImageAdapter","Intent.putExtra "); activity.startActivity(intent); } 这是我的 ImageDisplayActivity 类。 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_imageview); 获取在 gridview 中单击的文件的路径。 path = getIntent().getExtras()

2021-06-21 12:32:16   android   camera   imageview   android-camera   share

Git 警告:refname 'xxx' 不明确(Git warning: refname 'xxx' is ambiguous)

问题 我有两个分支 'master' 和 'develop',我从 master 'hotfix-1' 创建了一个新分支,然后我将 'hotfix-1' 合并回 master ; git checkout master git merge --no-ff hotfix-1 为此点创建了一个标签; git tag -a hotfix-1 -m "" 然后我切换回 master 的开发分支并将“hotfix-1”与 ; git checkout develop git merge --no-ff hotfix-1 合并“hotfix-1”以进行开发后,我收到“警告:refname 'hotfix-1' 不明确”消息,并且它也成功地合并了我的更改以进行开发。我应该担心什么吗? 编辑 git show-ref --heads --tags d97bfc563749918799d4659c43f7bffd29cf4d60 refs/heads/develop 594ea85c94f8321d372779ed3dbd5df07bdb059b refs/heads/master ffc897f8ab19510d5ff4c67969d0f0cb97d1c4f3 refs/tags/beta-1.0 490a8c80ecec70fd2268aa0c2ad7a9beb6bf491c refs/tags

2021-06-21 12:32:12   git   git-merge

Java - 生成随机盐不是随机的(Java - Generating a random salt isn't random)

问题 我正在尝试在 Java 中生成一个盐,以与散列算法一起使用以实现安全密码存储。 我正在使用以下代码来创建随机盐: private static String getSalt() throws NoSuchAlgorithmException { SecureRandom sr = SecureRandom.getInstance("SHA1PRNG"); byte[] salt = new byte[16]; sr.nextBytes(salt); System.out.println(salt.toString()); return salt.toString(); } 这应该生成一个完全安全的、随机生成的盐,用于我的散列算法。 然而,当我运行代码时,它每次都输出相同的盐......表明生成的盐根本不是随机的。 出于明显的安全目的,每个用户都需要一个唯一的盐,但是如果我每次创建新帐户时都使用此代码,那么每个用户都将拥有相同的盐,这首先就违背了拥有它的目的。 我的问题是:为什么这总是给我相同的盐,我该怎么做才能确保每次运行代码时生成的盐是完全随机的? 编辑: 我想我会包含整个散列程序的源代码,现在已经修复并正常工作。 这是一个简单的原型,用于模拟在创建帐户时生成哈希,然后在登录系统时检查密码。 package hashingwstest; import java

2021-06-21 12:32:08   java   random   hash   salt   salt-creation

SSIS 通过脚本任务写入对象变量(SSIS Write to object variable through script task)

问题 我有一些代码,我想以 2 个列表结束。 开始和结束。 它们包含月份的开始日期和月份的结束日期。 这两个列表我想放入一个对象变量中,以便我可以在 ssis 的 foreachloop 容器中使用该对象,并使用 startofmonth 和 endofmonthdates(变量:min 和 max)循环遍历每一行 - 但我不知道如何 这是我的代码: String s = "2013-01-01"; String b = "2014-01-01"; using (SqlConnection connection = new SqlConnection("Server=localhost;Initial Catalog=LegOgSpass;Integrated Security=SSPI;Application Name=SQLNCLI11.1")) { connection.Open(); string query = "select mindate,maxdate from dbo.dates"; using (SqlCommand command = new SqlCommand(query, connection)) { using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()

2021-06-21 12:32:04   c#   variables   object   ssis   task

如何阻止 Symfony 记录 Doctrine 的 sql 查询?(How to stop Symfony from logging Doctrine's sql queries?)

问题 我有一个奇怪的问题,当我检查我的app/log/dev.log我可以看到我的dev.log几乎所有查询dev.log被实时记录: [2015-01-27 06:57:22] doctrine.DEBUG: SELECT t0.username A .... [2015-01-27 06:57:23] doctrine.DEBUG: SELECT t0.username A ... [2015-01-27 06:57:23] doctrine.DEBUG: SELECT s0_.id ...... 我不知道为什么会发生这种情况,因为当我在config.yml检查 monolog 时,我也在生产模式下运行站点,这就是我看到的: monolog: handlers: pictures: type: stream path: %kernel.logs_dir%/pictures_%kernel.environment%.log level: info instagram: type: stream path: %kernel.logs_dir%/instagram_%kernel.environment%.log level: info 这是我的 config_dev.yml 的样子: imports: - { resource: config.yml } framework

2021-06-21 12:31:58   php   symfony   doctrine-orm

如何让 Mocha 加载定义全局钩子或实用程序的 helper.js 文件?(How can I make Mocha load a helper.js file that defines global hooks or utilities?)

问题 我有一个名为test/helper.js的文件,用于在我的 Node.js 应用程序上运行 Mocha 测试。 我的测试结构如下所示: test/ test/helper.js # global before/after test/api/sometest.spec.js test/models/somemodel.spec.js ... more here 文件helper.js必须加载,因为它包含我的测试套件的全局钩子。 当我运行 Mocha 来执行整个测试套件时: mocha --recursive test/ helper.js文件在我的测试before加载,我的before钩子按预期执行。 但是,当我只运行一个特定的测试时, helper.js不会在测试前加载。 这是我运行它的方式: mocha test/api/sometest.spec.js before调用before没有全局,甚至没有console.log('I WAS HERE'); . 那么我怎样才能让 Mocha总是加载我的helper.js文件呢? 回答1 Mocha 没有任何名为helper.js的特殊文件的概念,它会在其他文件之前加载。 当您运行mocha --recursive时,您尝试执行的操作会起作用,因为 Mocha恰好加载文件的顺序。 因为helper.js比其他文件高一级

2021-06-21 12:31:55   javascript   node.js   mocha.js