[Logo]
Messages posted by: andowson
Forum Index » Profile for andowson » Messages posted by andowson
Message
當初的考量是:現在的伺服器配備的記憶體都是以GB作單位了,而且記憶體也很便宜,如果買了有4GB記憶體的伺服器,但是只跑了一個JVM,會不會造成浪費?或是如果覺得系統效能不彰,想要提升效能,增加記憶體是否會遇到Java本身設計上的上限而造成浪費?
我實際看到的畫面如下:
image
image
看來是不行的。
http://ip-adress.com/
現在的網站越來越厲害了,初步分析這個技術的可能步驟如下:
1.由網頁抓到或輸入用戶端的IP
2.將這個IP和IP資料庫比對,找出所在國家、城市、ISP、經度和緯度座標
3.將找到的座標整合到Google Map去

目前發現找到的經度和緯度座標其實是ISP的機房位置,如果可以再由IP找到附掛電話號碼,然後查出用戶住家地址,再由這個地址去找出經度和緯度,幾乎就可以讓你更無所遁形了。

想像中的打擊網路犯罪小組流程:
1.由網頁抓到或輸入用戶端的IP
2.將這個IP和IP資料庫比對,找出所在國家、城市、ISP
3.由ISP找出ADSL附掛電話之用戶地址
4.由用戶地址查出經緯度座標
5.將找到的座標整合到Google Map去

第三步目前應該是ISP的營業秘密,所以應該只有警方之類的才取得到吧?
Anonymous wrote:An error has occurred.

For detailed error information, please see the HTML source code, and contact the forum Administrator.

ERROR: column "user_rank" of relation "jforum_users" does not exist


發現是前陣子由CVS下載回來的generic_queries.sql有問題 smilie
UserModel.addNew = INSERT INTO jforum_users (username, user_password, user_email, user_regdate, user_actkey, user_rank) VALUES (?, ?, ?, ?, ?, 0)

應該改成
UserModel.addNew = INSERT INTO jforum_users (username, user_password, user_email, user_regdate, user_actkey, rank_id) VALUES (?, ?, ?, ?, ?, 0)

才對。現在這個問題已經修改完成,歡迎大家繼續加入會員囉~
JForum預設cookie-based的sso.implementation是net.jforum.sso.CookieUserSSO,但是原始碼並沒有這個CookieUserSSO類別,所以如果我們照著文件做會失敗。

在此附上一份經過實際測試沒有問題的CookieUserSSO.java及CookieUserSSO.class檔,如果您的需求是很單純的用Cookie來作Single Sign-On,則下載後重新編譯,將編譯後的class檔放到WEB-INF/classes/net/jforum/sso目錄下,然後重新載入JForum即可。
package net.jforum.sso;

import javax.servlet.http.Cookie;
import net.jforum.context.RequestContext;
import net.jforum.JForumExecutionContext;
import net.jforum.ControllerUtils;
import net.jforum.entities.UserSession;
import net.jforum.util.preferences.ConfigKeys;
import net.jforum.util.preferences.SystemGlobals;
import org.apache.log4j.Logger;

public class CookieUserSSO implements SSO {

	static final Logger logger = Logger.getLogger(CookieUserSSO.class.getName());

	public String authenticateUser(RequestContext request) {		
		// myapp login cookie, contain logged username
		Cookie myCookie = ControllerUtils.getCookie(
				SystemGlobals.getValue(ConfigKeys.COOKIE_NAME_USER));		
		String username = null;
		
		if (myCookie != null) {
			username = myCookie.getValue();		
		}		 
		return username; // jforum username
	}

	public boolean isSessionValid(UserSession userSession, RequestContext request) {
		Cookie SSOCookie = ControllerUtils.getCookie(
				SystemGlobals.getValue(ConfigKeys.COOKIE_NAME_USER)); // myapp login cookie		
		String remoteUser = null;
		
		if (SSOCookie != null) {
			remoteUser = SSOCookie.getValue(); //  jforum username
		}

        // user has since logged out
        if(remoteUser == null && 
                userSession.getUserId() != SystemGlobals.getIntValue(ConfigKeys.ANONYMOUS_USER_ID)) {
			return false;
        // user has since logged in
        } else if(remoteUser != null && 
                userSession.getUserId() == SystemGlobals.getIntValue(ConfigKeys.ANONYMOUS_USER_ID)) {
            return false;
        // user has changed user
        } else if(remoteUser != null && !remoteUser.equals(userSession.getUsername())) {
            return false;
        }
        return true; // myapp user and forum user the same
	}
}


另外,還要設定一下jforum-custom.conf,設定範例如下:
authentication.type=sso
sso.implementation=net.jforum.sso.CookieUserSSO
sso.redirect=http://member.andowson.com/login.jsp
cookie.name.user=username

紅色字體部分即是您需要依您實際狀況修改的地方,例如上面的例子意思是您的會員登入是在member.andowson.com控管,而login.jsp在驗證完畢後,會寫入一個username的cookie(domain需是andowson.com),並讀出returnUrl參數來導回到原來的網址去。

參考資料:
http://www.jforum.net/posts/list/3619.page
編輯 > 選擇方式 > 多行選擇
1.在jforum-custom.conf中加入一行:
attachments.anonymous=false

2.修改net.jforum.view.forum.PostAction.java的downloadAttach():

if ((SecurityRepository.canAccess(SecurityConstants.PERM_ATTACHMENTS_ENABLED) &&
		!SecurityRepository.canAccess(SecurityConstants.PERM_ATTACHMENTS_DOWNLOAD))
		|| (!SessionFacade.isLogged() && !SystemGlobals.getBoolValue(ConfigKeys.ATTACHMENTS_ANONYMOUS))) {
	this.setTemplateName(TemplateKeys.POSTS_CANNOT_DOWNLOAD);
	this.context.put("message", I18n.getMessage("Attachments.featureDisabled"));
	return;
}

改為
if ((SecurityRepository.canAccess(SecurityConstants.PERM_ATTACHMENTS_ENABLED) &&
		!SecurityRepository.canAccess(SecurityConstants.PERM_ATTACHMENTS_DOWNLOAD))) {
	this.setTemplateName(TemplateKeys.POSTS_CANNOT_DOWNLOAD);
	this.context.put("message", I18n.getMessage("Attachments.featureDisabled"));
	return;
}
if (!SessionFacade.isLogged() && !SystemGlobals.getBoolValue(ConfigKeys.ATTACHMENTS_ANONYMOUS)) {
	this.setTemplateName(ViewCommon.contextToLogin());
	return;
}

原先的程式碼是不管設定為不啟用附加檔案及未登入且有設定禁止匿名下載附加檔案時都顯示同一個錯誤訊息,我們把它分開成兩個狀況,在未登入且有設定禁止匿名下載附加檔案時先導到登入畫面,通過登入驗證後再下載檔案。
JForum如果使用精靈方式安裝,可以自己設定管理者Admin的密碼,不過如果安裝完成後,沒有每天常用這個管理者帳號作事情,日子久了可能會忘記密碼,由於預設安裝是沒有填寫email的,所以想用執行「忘記密碼」方式來補發密碼也是無效。
那這樣得重新安裝才能解決嗎?那現有的文章怎麼辦?還有用戶的帳號呢?由於JForum內部會對密碼用MD5編碼,最簡單的解法就是直接連到資料庫去改回手動安裝時的密碼'admin'的MD5編碼值,所以請執行以下的SQL:
update jforum_users set user_password = '21232f297a57a5a743894a0e4a801fc3' where username = 'Admin';

這樣就可以用Admin登入了。登入後記得要立刻去改密碼喔!
為促進會員交流,及刺激更多創意,本站已啟用限制匿名下載機制。
如對本站附加檔案有興趣者,請先加入會員並登入後即可順利下載。
網路上有些影片聲音部分需要Ogg Vorbis Mode 3+(6771)的codec才能解碼,通常用Windows Media Player可以看到在播放的片名旁邊有個紅X,顯示錯誤訊息如下:

You've encountered an error message C00D10D1 while using Windows Media Player. The following information might help you troubleshoot the issue.

Codec is missing
Windows Media Player cannot play the file (or cannot play either the audio or video portion of the file) because the Ogg Vorbis Mode 3+ (6771) codec is not installed on your computer.


經過不斷尋找及實際測試後終於找到了下面這篇文章
http://www.moviecodec.com/topics/6234p1.html
裡面提到可在這邊下載及安裝vorbis.acm
http://svn.xiph.org/tags/vorbis/vorbisacm_20020708/
在 vorbisacm.inf 按滑鼠右鍵 ,然後選安裝。
安裝後終於可以聽到聲音了!
現在流行的架站方式已經開始朝weblog方式了,於是我花了點時間安裝並整理了roller的自動安裝步驟,可以copy & paste方式完成一部份,剩下來的修改就得自己動手了。

底下整段copy下來,貼到root的shell
SETUP_DIR=/home/andowson/download
INSTALL_DIR=/home/andowson/www
CATALINA_HOME=/var/tomcat5
cd $SETUP_DIR
wget http://people.apache.org/dist/incubator/roller/apache-roller-3.0-incubating.tar.gz
tar zxvf apache-roller-3.0-incubating.tar.gz
export ROLLER=$SETUP_DIR/apache-roller-3.0-incubating/webapp/roller
wget https://roller.dev.java.net/files/documents/190/40575/required-jars-roller-3.0-incubating.tar.gz
tar zxvf required-jars-roller-3.0-incubating.tar.gz
cd $CATALINA_HOME/common/lib
wget http://jdbc.postgresql.org/download/postgresql-8.2-504.jdbc3.jar
mkdir -p $ROLLER/roller_data/uploads
mkdir -p $ROLLER/roller_data/search-index
echo 'uploads.dir='$INSTALL_DIR'/roller/roller_data/uploads
search.index.dir='$INSTALL_DIR'/roller/roller_data/search-index' > $ROLLER/WEB-INF/classes/roller-custom.properties

su postgres
psql -c "create user scott createdb;" template1
psql -c "create database roller with encoding 'unicode';" -U scott template1
psql -c "alter user scott nocreatedb;" template1
psql -c "alter user scott with encrypted password 'tiger';" template1

psql roller scott -f $ROLLER/WEB-INF/dbscripts/postgresql/createdb.sql
exit

cp -rf $ROLLER $INSTALL_DIR/roller
chown -R andowson:tomcat $INSTALL_DIR/roller
chmod g+w $INSTALL_DIR/roller
chmod -R g+w $INSTALL_DIR/roller/roller_data

修改server.xml中的Connector,加上
URIEncoding="UTF-8"

編輯/var/robust/worker1/conf/Catalina/www.andowson.com/roller.xml
<Context path="/roller" docBase="roller" debug="0" reloadable="true">
<Resource name="jdbc/rollerdb" auth="Container"
type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/roller"
username="scott"
password="tiger"
maxActive="20"
maxIdle="3"
removeAbandoned="true"
maxWait="3000" />
<Resource name="mail/Session" auth="Container"
type="javax.mail.Session" mail.smtp.host="smtp.andowson.com" />
</Context>

修改/home/andowson/www/roller/WEB-INF/classes/hibernate.cfg.xml
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>

修改/etc/httpd/conf.d/mod_jk.conf,加上
JkMount /roller/* loadbalancer

重新啟動Tomcat和Apache
為了加速對JForum的開發及測試,不能再用傳統的WinCVS->PSPad->FileZilla->PuTTY->ant->service tomcat restart方式,要改用一個整合式的開發環境(IDE)將CVS到編輯修改除錯完成後再部署(deploy)到正式站台去。

在開發工具選擇上Eclipse WTP是個滿不錯的選擇,免費且plugin又多,於是我選擇了這個工具,同時也安裝了FreeMarker的Eclipse plugin,當然Tomcat也是得裝的。

由於直接由Eclipse的Import..->Projects from CVS會使用和CVS上相同的專案名稱jforum,故我把新的專案名稱改為jforumWTP,過程就是新增一個Dynamic Web Project然後取名為jforumWTP,完成後將原來jforum專案的src目錄內容全部複製到jforumWTP的src目錄去,其他的index.htm, images, templates, tmp, upload及WEB-INF等目錄複製到WebContent目錄去,然後從現有上線的主機下載回jforum-custom.conf(修改一下database.connection.host的設定)再對index.htm按右鍵選擇Run As->Run On Server

懶得自己去挑選目錄跟檔案的人可以下載我打包好的WAR檔
https://sites.google.com/site/andowson/Home/jforumWTP.war?attredirects=0&d=1
然後在Eclipse中新增一個空白專案(jforumWTP)後,改用Import->Web->WAR file,選擇jforumWTP.war即可。

從此以後就可以直接在Eclipse裡面直接執行JForum了,要修改或除錯也變得很方便。
MooTools is a compact, modular, Object-Oriented javascript framework designed to make writing extensible and compatable code easier and faster. Mootools lets you get the job done efficiently and effectively.

來源網址:
http://mootools.net/


ORACLE-BASE: 依作業系統版本及Oracle版本作矩陣式整理,點選產品版本及Linux版本(對應到Red Hat Linux的版本)交叉的方格,照說明一步步執行即可。
http://www.oracle-base.com/articles/linux/ArticlesLinux.php

PUSCHITZ.COM: 較深入的解說及較詳細的問題解決提示
Installing Oracle9i 32-bit on Red Hat Enterprise Linux Advanced Server 4, 3, 2.1, and on Red Hat 9, 8.0, 7.3, 7.2, 7.1 (x86)
Installing Oracle Database 10g (32-bit/64-bit) on RHEL, Fedora Core, and Red Hat (x86/x86_64)

Database Specialists, Inc: 整理的比較有條理,對參數的說明也比較詳細
Installing and Configuring Oracle9i on the Linux Platform
Installing and Configuring Oracle Database 10g on the Linux Platform
最近搬了四部Linux主機到新的機房,由於需要對L2 Switch及Firewall作設定,故需要透過console連進去,由於現在的筆記型電腦多半沒有RS232的COM port,故只好求助於搬過去的這些Linux主機,看看有沒有類似Windows下的超級終端機的軟體。

答案是有的,叫做minicom。

簡易操作順序:
minicom -s
minicom
 
Forum Index » Profile for andowson » Messages posted by andowson
Go to:   

交換連結乌托邦博客 
在本站刊登廣告
練功房推薦書單
SCJP 6.0認證教戰手冊 (附光碟) 雲端策略:雲端運算與虛擬化技術 SCJP Java 6專業認證手冊 Java認證SCJP 6.0/5.0--猛虎出閘 SCWCD 5 猛虎出閘:Java Web 應用程式專業認證 SCWCD專業認證手冊 Head First Servlets and JSP
[版權說明] 本站授權方式:創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款
Creative Commons License
Powered by JForum 2.2.0 © JForum Team