質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

1528閲覧

JavaのWebアプリ内でwikiを用意したい場合、どうすれば

yoshihiro_yy

総合スコア27

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2019/05/11 11:57

やりたいこと

Apache + Java + tomcat + spring
で構築してるWebサイトがあります。

この中で現在SpringSecurityを利用しログインが必要なページを作っています。
これ自体は問題なく完成して運用しています。

例えばそのログインが必要なページが
https://wwww.xxx.xx.xx/member/**
と/member以降のURLはすべてログイン認証を通らないとアクセス出来ないようにしてあります。
また、ログインしている場合は当然ログインユーザーの情報を持ち回っています。

そのログインが必要なページ(URL)内に、
wikiのようなCMSページを用意したいと思いました。

現在利用しているログインIDとパスワード、つまりユーザーデータと連動し、
ユーザーが何かコンテンツを投稿したり出来るような機能を用意したいと。

こういった場合、どうするのが良いでしょうか。

考えたこと

  1. 自分でゴリゴリ作る
  2. オープンソースなCMS(Java製)を導入
  3. オープンソースなCMS(その他言語)を導入
  4. その他

1は当然やれないことはないのですが、手間がかかりすぎるので却下をしようかと

2に関してですが、Javaでwikiとかあるのかな?と思って軽く検索してみたのですが、
やはり元々業務向けの言語だから全然情報を手に入れられなかったのです。
なんだか古い情報だったりでどうしたものか、という状況です。

3に関しては、例えばApacheにPHPを乗せてJavaのWebと相乗りさせるとか思ったのですが、
Java上でログインの管理をしているので、PHP側とURLのシェアって出来ないと思います。
(**https://wwww.xxx.xx.xx/member/php/****だけphp側に回すとか、
Apacheのアクセスの振り分けで出来なくないのかもしれないですが、
特定URLだけ別のWebアプリにするとか管理上考えられないので。。。)
なのでこれも無理かなと

そこで何か妙案があるものかと思い御知恵を拝借出来たらなと思い質問させていただきました。

究極、WIKIに関しては外部(別のURL)になってもいいのですが、
その場合でも現在のログインIDとパスワードは連動させたいのです。
動的に新規にアカウントの発行や、ユーザー自信によるアカウントIDや
パスワードの変更などをしているので、それと連動といいますか。

その場合当然DBの連動も必要になってくるので、
出来るだけ管理・運用がしやすい方法がいいなぁと思って入るのですが。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/05/11 12:19

内容斜め読みしただけだと「ご自由にどうぞ」となってきます。 問題、課題が具体的でないと回答は得られにくいと思います。 「自身でゴリゴリ作れなくない」となると尚更ですね。
yoshihiro_yy

2019/05/11 14:47

1に関してですが、wikiのシステムそのものを一から自分で作る、ということになると思います。 当然それはやろうと思えばやれると思います。 ただ、 >手間がかかりすぎるので却下をしようかと というわけでして。 そうでない妙案があればご回答頂きたいと思っています。
guest

回答2

0

ベストアンサー

Apache JSPWiki

2に関してですが、Javaでwikiとかあるのかな?と思って軽く検索してみたのですが、

昨年12月に検討した Apache JSPWiki を紹介します。 Apache JSPWiki
昨年12月時点のバージョンを検討。閉じた研修環境で使うための検討なので参考情報になります。

使いやすい点

  • wiki が Web アプリケーションとして動作する。

JSPWiki.war を Tomcat の $CATALINA_HOME/webapps/ にコピーするだけで動く。

  • 文字コードのデフォルトは UTF-8。

日本語は問題なく使える。マークダウンもある程度揃っている。

  • 設定をカスタマイズすれば JDBC でデータベースのユーザー認証情報にアクセスすることができる。(未確認)
  • 日本語 wiki の実績はないが、英語圏の実績はある。
  • セキュリティ情報が公開される。

2世代前のバージョンにクロスサイトスクリプティング脆弱性があった。

使いにくい点

  • ドキュメントがすべて英語である。英語が苦にならなければ。
  • wiki ページに日本語メッセージがない。日本語の、message.properties を用意する必要がある。

中国語版などがあるので、同じように追加すればよく、さほど難しくはないと思う。

  • 同じ Tomcat 配下の web アプリケーションの共通認証が課題。調べれば情報が出てきそうだ。

参考

Linux 環境の設定ファイルを添付します。設定ファイルのファイル名
$CATALINA_HOME/lib/jspwiki-custom.properties

properties

1jspwiki.basicAttachmentProvider.storageDir=/var/wiki/xebme 2jspwiki.fileSystemProvider.pageDir=/var/wiki/xebme 3jspwiki.pageProvider=VersioningFileProvider 4jspwiki.applicationName=XebmeWiki 5jspwiki.workDir=/var/cache/tomcat/temp 6jspwiki.defaultprefs.template.skinname=CleanBlue 7jspwiki.use.external.logconfig=false 8log4j.appender.FileLog=org.apache.log4j.RollingFileAppender 9log4j.appender.FileLog.MaxFileSize=10MB 10log4j.appender.FileLog.MaxBackupIndex=14 11log4j.appender.FileLog.File=/var/wiki/log/jspwiki.log 12log4j.appender.FileLog.layout=org.apache.log4j.PatternLayout 13log4j.appender.FileLog.layout.ConversionPattern=%d [%t] %p %c %x - %m%n 14log4j.rootCategory=INFO,FileLog

海外での実績はあるのでたぶん使えると思います。フルスクラッチから作ることを考えれば。

投稿2019/05/21 11:06

xebme

総合スコア1081

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshihiro_yy

2019/05/26 01:32

具体的な情報ありがとうございます! JavaでWikiを用意するというのが中々近々の情報がなくどうしたものかと思っていたところに、とても具体的な情報を頂きイメージ・検討がしやすく助かります。 英語は得意ではないですが、時間をかければ出来なくはないので試してみようと思います! ありがとうございました!
guest

0

私は自前で構築するしかないと思います。

CMSを導入する場合はそのCMSに合わせたDB設計にしないといけないです。

現状はそのようになっていないはずです。

CMS専用のDBスキーマを別に作成して良いのであれば可能です。
ただしその場合は当然2つのアプリケーションが同じデータソースを参照する状態にはならないですが。

ユーザ情報だけ流用したいのであればOAUTHを実装するという手もあるんじゃないでしょうか。

投稿2019/05/11 15:14

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/05/12 07:36

ユーザ情報を流用というのは適切な表現ではなかったかも。 元アプリのユーザで別に作ったCMSにログインしたい場合ですね。
yoshihiro_yy

2019/05/26 01:34

おっしゃる通りDB設計はCMSを導入なんて考えていない設計となっています。 別のご回答で頂いたWikiを検討しつつ、ダメそうであればご回答頂いたOAUTHで認証というのも視野に入れて検討しようと思います! ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問