

Docker版Redmine(5.0.2)に、[saml認証のプラグイン](https://github.com/davintoo/redmine_omniauth_saml)
を導入しようとしています。

`bundle install` , `bundle exec rake`
は完了し、導入自体は成功しているように見受けられますが、`/usr/src/redmine/config/initializers`
に設定ファイルを配置すると以下のエラーとなり、Redmineの起動に失敗してしまいます。

[code]

    rake aborted!
    NameError: uninitialized constant RedmineOmniauthSaml
    
[/code]

設定ファイルには以下のように記述しています。

[code]

    RedmineOmniauthSaml::Base.configure do |config|
      config.saml = {
    ...
    
[/code]

うまくclassを読み込めていないのかと思うのですが、Redmine 5系となり、記述方法等が変更になったのでしょうか。

環境はRedmine 5.0.2, Ruby 3.1.2-p20, Rails 6.1.6 です。  
尚、同じプラグイン、設定ファイルを用いて、Redmineの4系で試行しましたが、Redmine自体は問題なく起動します。

こちらはruby, rails等の理解があまりなく、ヒントを頂けると幸いです。


CC BY-SA 4.0
2023-01-16T06:10:04.420
93376
2023-01-17T07:17:33.287
2023-01-16T07:33:03.133
3060
56598
question
ruby redmine
Redmine 5.0.2 で SAML 認証プラグインの読み込み時に NameError


参照しているリポジトリも
[アーカイブされたリポジトリ](https://github.com/chrodriguez/redmine_omniauth_saml)
からフォークしたもののようですが、別のフォークしたリポジトリで Redmine 5.x
向けの修正を行っているものがあるようなので、代わりにこちらを試してみてはどうでしょうか。

<https://github.com/fortinet-solutions-cse/redmine_omniauth_saml>

[Update class name / scope for RM v5](https://github.com/fortinet-solutions-
cse/redmine_omniauth_saml/commit/6860912901a08d4bdc45e3de9023221b28dfd8d2)
(最新のコミット: 抜粋)

[code]

    -      user_attributes = Redmine::OmniAuthSAML.user_attributes_from_saml omniauth
    +      user_attributes = RedmineOmniAuthSaml.user_attributes_from_saml omniauth
    
[/code]


CC BY-SA 4.0
2023-01-16T07:03:15.707
93378
2023-01-16T07:03:15.707
3060
93376
answer


解決しました。  
/usr/src/redmine/config/initializers に配置する設定ファイルの頭に

[code]

    require Rails.root.join('plugins/redmine_omniauth_saml/lib/redmine_omniauth_saml')
    
[/code]

とすることで、無事Redmineが起動するようになりました。  
（設定値が正しく反映されているかは別として）

ありがとうございました。


CC BY-SA 4.0
2023-01-17T07:17:33.287
93402
2023-01-17T07:17:33.287
56598
93376
answer