「SE業務」カテゴリーアーカイブ

GitHubでPushした際に「git-receive-pack not permitted」とエラーが発生した際の対処法

GitHubで自分のリポジトリにPushしようとしたところ、「git-receive-pack not permitted」というエラーが発生した。(Eclipseからやってます)

エラーの画面ショット

とある記事では、「Gitのパスワードが間違っているので、Eclipseのセキュアストレージを一旦削除する」というのがあったが、これでも解決せず。

散々探した結果、GitHubの公式ブログに見つけました!なんと、2020/12/15の記事で「Token authentication requirements for Git operations」がありました。
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

つまり、Gitの操作にはトークン認証が必須になるよという意味でした。実際、トークンを作成してPushしたところ問題なく操作できました。

私の場合は、Cloneするときには、Githubのアカウントとパスワードをセットしていたため、同じ認証情報がPushの時にも使われてエラーになったました。

トークンの作成方法

① GitHubにログインして、アイコン > Settingsを開く。

②画面下部の方にある、Developer Settingsを開く。

③Personal access tokenを開く。

④Generate new tokenを開く。

④トークンの名前と有効期限をセットする。

⑤アクセスを許可するスコープをセットして、画面下部のGenerate Tokenを押下する。

⑥そうすると、トークンが作成された画面上に表示されるためメモしておく(このタイミングでしか見れない)

⑦アクセストークンをパスワードにセットして使う。↓例

なお、英語でよければTokenの作成方法について公式の記事があります。
https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token

Eclipseの認証情報のクリア方法

私のようにEclipseで認証情報を保存してしまった場合は、以下の方法でクリアできます。
設定 > 一般 > セキュリティー > セキュア・ストレージ > 内容 > [デフォルト・セキュア・ストレージ] > GIT > http・・・・(以下画面参照)
に移動して削除を押下します。

すると再起動を求められるので再起動します。再度Pushするときに認証情報を求められるので、その時にパスワードにTokenを使いましょう。

古いバージョンのEclipseであれば、以下の記事が役に立つかもです。
https://hacknote.jp/archives/6690/

いやー、自分が使っているサービスの公式ブログはたまに読んでおかないとだめだ。(;´д`)


Azure Files(ファイル共有)をJava SDKで触ってみた

仕事でAzure Filesを使うことになり、JavaのWebアプリからアクセスする要件があり、ファイル作成、削除などの基本的な操作をAzure Java SDKでできるか確認した。

基本的には、以下のMicrosoft公式の実装サンプルを試してみた。
https://docs.microsoft.com/ja-jp/azure/storage/files/storage-java-how-to-use-file-storage?tabs=java

ほとんどそのまま使えるものであったが、以下のファイルアップロードだけそのままでは使えなかった。

「fileClient.create(1024)」と書かれているが、ここはファイルの最大サイズを指定するらしく、このままでは1KBのファイルまでしかアップロードできなかった。以下のように修正して、事前にファイルサイズを指定するよう変更した。(21行目)

ソース全体は以下のGithubリポジトリにアップロード済み。
https://github.com/glasses-se-hub/azure-files-java-sdk

自分で作りたくないので、もうちょっと公式に実装サンプルがあるとうれしい。( º﹃º` )ダラ~


【WebSphere Application Server】soap.client.props のパスワードを復号する

Websphereにおいて、wsadminやWASの停止時にパスワード入力を求められますが、soap.client.propsファイルに事前に認証情報を記載しておくことで、パスワード入力を省略することができます。

ファイルパス:<WAS_ROOT>/profiles/<プロファイル名>/properties/soap.client.props 

入力したらPropFilePasswordEncoder.shを実行することで暗号化することも可能です。

詳しくはこちらに書かれています。
管理セキュリティーを有効にしている環境で管理コマンドやwsadmin実行時のパスワード入力を省略する方法

ただし、これを利用してパスワードを入力する機会がなくなり、数年後忘れてしまうということがありました。

そんなときは、以下のサイトでパスワードを復号できます。

http://www.sysman.nl/wasdecoder/

https://strelitzia.net/wasXORdecoder/wasXORdecoder.html

http://www.poweredbywebsphere.com/decoder.html

非公式なので実施は自己責任ですが、私は問題なく復号できました(WAS 9.0.5.6で実施)。繰り返しますが、非公式なので自己責任かつ最後の手段ですね。