2013年12月18日水曜日

EXCELに名前が残ってこまった。

1.Ctrl+F3で手動で消す。
2.シートタブ→コード表示
  カット&ペースト
  実行
  ツール→マクロ→マクロ→削除

■スタイルの一括削除マクロ
Sub delstyle()
Dim s
On Error Resume Next
For Each s In ActiveWorkbook.Styles
If Not s.BuiltIn Then
s.Delete
End If
Next
End Sub

■名前の一括削除マクロ
Sub delname()
Dim s
On Error Resume Next
For Each s In ActiveWorkbook.Names
If Not s.BuiltIn Then
s.Delete
End If
Next
End Sub

2013年11月22日金曜日

opensslで遊んでみた!!


# 秘密キーをつくる。
openssl genrsa 256 > private-key.pem
cat private-key.pem
openssl rsa -text < private-key.pem
# 公開キーをつくる。
openssl rsa -pubout < private-key.pem > public-key.pem
openssl rsa -text -pubin < public-key.pem
# 公開キーで暗号化してみる。
echo "Hello" | openssl rsautl -encrypt -pubin -inkey public-key.pem > message
base64 message


# 秘密キーで複合してみる。
cat message | openssl rsautl -decrypt -inkey private-key.pem


#サーバ証明書を作ってみる。
openssl genrsa 2048 > server.key
openssl req -new -key server.key > server.csr
openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt


#sha256で署名の場合は、(SHA-2)
openssl genrsa 2048 > server.key
openssl req -new -sha256 -key server.key -out server.csr
openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt

#csrファイルの確認
openssl req -text < server.csr



#証明書を確認
openssl x509 -text < server.crt


# apacheにセット。
vi ssl.conf

SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt
SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key

2013年10月24日木曜日

JDBC認証作り直してみた。

【DB構築】

drop database auth;
create database auth;
use auth;
##---------------------------------auth.sql---------------------------------
drop table if exists auth_users;
create table auth_users (
user_name varchar(64),
user_pass varchar(16),
PRIMARY KEY (user_name)
);
insert into auth_users values ('casio', '$$casio');

drop table if exists user_roles;
create table user_roles (
user_name varchar(64),
role_name varchar(16),
PRIMARY KEY (user_name)
);
INSERT INTO user_roles VALUES ('casio', 'member');

##---------------------------------auth.sql---------------------------------
show databases;
use auth;
show tables;
select * from auth_users;
select * from user_roles;


SOURCE auth.sql;




プロジェクト作成
ファイル→新規→動的Webプロジェクト
プロジェクト名: xxxxxxxxx
ターゲット・ランタイム: apache-tomcat-7.0.42
動的Webモジュールバージョン: 3.0

web.xmlデプロイメント記述子の生成(G)にチェック

以下をWebContent下に配置。


【index.html】

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index.html</title>
<meta http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
</head>
<body>
<p>このページは、3秒後にログインページに移動します。</p>
<br>
<p><a href="security-webapps/menu.jsp">業務メニューにジャンプします。</a></p>
</body>
</html>

【login/index.html】


<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index.html</title>
<meta http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
</head>
<body>
<p>このページは、3秒後にログインページに移動します。</p>
<br>
<p><a href="../security-webapps/menu.jsp">業務メニューにジャンプします。</a></p>
</body>
</html>

【login/login.jsp】


<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>login page</title>
</head>
<body>
<h1 align="center">端末管理支援システム</h1>
<h1 align="center">ログイン</h1>
<br>
<div align="center">
<form method="post" action='<%= response.encodeURL("j_security_check")%>'>
<table>
<tr>
<td>メールアドレス</td>
<td> <input type="text" name="j_username"></td>
</tr>
<tr>
<td>パスワード</td>
<td><input type="password" name="j_password"></td>
</tr>
<tr>
<td></td>
<td>
<input type="submit" value="Login" name="submit">
<input type="reset" value="Reset" name="reset">
</td>
</tr>
</table>
</form>
<br> <br> <br>
<%
String str_status = request.getParameter("status");
if( str_status != null && str_status.equals("error")){
out.println("ID/Passswordが誤っています。");
}
%>
<br> <br> <br>
<p><a href="../regist/regist.html">新規登録はこちら。</a></p>
</div>
</body>
</html>

【login/logout.jsp】

<%@ page session="true" language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
[<%=request.getRemoteUser()%>] さんはログアウトしました。
<% session.invalidate(); %>
<br><br>
<a href="../security-webapps/menu.jsp">ログイン画面に戻る</a>

【regist/regist.html】

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登録項目入力フォーム</title>
<script type="text/javascript">

function check(){
var flag = 0;
// alert("フィールドのチェックをはじめます。");
if( !document.regist_form.auth_mailaddress.value.match(/^([A-Za-z0-9_\.\-]){2,32}@([A-Za-z0-9_\.\-]){3,31}$/)){
flag = 1;
alert("メールアドレスのフォーマットが間違っています。");
} else if( !document.regist_form.auth_password.value.match(/^[a-z0-9]{6,16}$/)){
flag = 1;
alert("パスワードのフォーマットが間違っています。");
}
// alert("フィールドチェックが終わりました。ー2");
if(flag){
// window.alert('必須項目に未入力がありました'); // 入力漏れがあれば警告ダイアログを表示
return false; // 送信を中止
}
else{
return true; // 送信を実行
}
}

</script>
</head>
<body>
<br>
<h1 align="center">端末管理支援システム</h1>
<h1 align="center">ユーザ登録</h1>
<br>
<div align="center">
<form name="regist_form" method="POST" action="regist.jsp" onSubmit="return check()">
<table>
<tr>
<td>メールアドレス:</td>
<td><input type="text" name="auth_mailaddress" value="" tabindex="0" accesskey="a" placeholder="xxxxx@xxxxx.xxx.xx"></td>
</tr>
<tr>
<td>パスワード:</td>
<td><input type="password" name="auth_password" value="" tabindex="1" accesskey="b" placeholder="山田 太郎"></td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" value="登録" tabindex="10" accesskey="s">
<input type="reset" value="取消" tabindex="11" accesskey="r">
</td>
</tr>
</table>
</form>
</div>
<p><a href="../security-webapps/menu.jsp">loginに戻る</a></p>
</body>
</html>


【regist/regist.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>データベース登録</title>
</head>
<body>
<%
String str_mailaddress = request.getParameter("auth_mailaddress");
String str_password = request.getParameter("auth_password");
out.println("メールアドレスは" + str_mailaddress + "ですね" + "<br>");
out.println("パスワードは" + str_password + "ですね" + "<br>");
%>
<%
Connection cn = null;
Statement st = null;
ResultSet rs = null;
String sql =null;
int num =0;

try {
Class.forName("com.mysql.jdbc.Driver");
cn=DriverManager.getConnection("jdbc:mysql://localhost/auth?" +
"user=takahab&password=no3177&useUnicode=true&characterEncoding=UTF-8");

st=cn.createStatement();

sql = "select user_name from auth_users where user_name = \'" + str_mailaddress + "\'";

out.println( sql );

rs = st.executeQuery(sql);

} catch (Exception e ) {
out.print("<p>JDBC executeQuery エラー<br>" + e.toString() + "</p>");
}

if( rs.next() ) {
out.println( "<p>メールアドレスは、既に登録されています。 </p>");
} else {
try {
sql = "insert into auth_users (user_name, user_pass) values (?, ?)";
PreparedStatement pstmt = cn.prepareStatement(sql);

pstmt.setString(1, str_mailaddress );
pstmt.setString(2, str_password );
num = pstmt.executeUpdate();

out.println(sql);

sql = "insert into user_roles (user_name, role_name) values (?, ?)";
pstmt = cn.prepareStatement(sql);

pstmt.setString(1, str_mailaddress );
pstmt.setString(2, "member" );
num = pstmt.executeUpdate();

out.println(sql);

st.close();
cn.close();

} catch (Exception e ) {
out.print("<p>JDBC executeUpdate エラー<br>" + e.toString() + "</p>");
}
}
%>
<br>
<p><a href="../security-webapps/menu.jsp">login</a></p>
</body>
</html>

【security-webapps/AuthDump.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>認証テーブルDBの表示</title>
</head>
<body>
<h1 align="center">認証DBテーブルの表示</h1>

<table border="5" cellpadding="2" cellspacing="2" align="center">

<tr><th>メールアドレス</th><th>パスワード</th></tr>

<%
Class.forName("com.mysql.jdbc.Driver");
Connection cn=DriverManager.getConnection("jdbc:mysql://localhost/auth?" +
"user=takahab&password=no3177&useUnicode=true&characterEncoding=UTF-8");
Statement st=cn.createStatement();

String sql = "select * from auth_users";
ResultSet rs = st.executeQuery(sql);

while(rs.next()){
out.println("<tr>");
out.println("<td>" + rs.getString("user_name") + "</td>");
out.println("<td>" + rs.getString("user_pass") + "</td>");
out.println("</tr>");
}

sql = "select * from user_roles";
rs = st.executeQuery(sql);

while(rs.next()){
out.println("<tr>");
out.println("<td>" + rs.getString("user_name") + "</td>");
out.println("<td>" + rs.getString("role_name") + "</td>");
out.println("</tr>");
}
    try { st.close(); } catch (Exception e ) {}
    try { cn.close(); } catch (Exception e ) {}
%>
</table>
<br><br>
<p><a href="menu.jsp">JSPメニューシステムにジャンプします。</a></p>
</body>
</html>

【security-webapps/menu.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>メニューシステム(jspタイプ)</title>
</head>
<body>
ようこそ [<%=request.getRemoteUser()%>] さんログイン成功です。
<br> <br>
ユーザ名: [<%=request.getRemoteUser()%>]
<br>
Authタイプ: [<%=request.getAuthType()%>]
<br>
メソッド: [<%=request.getMethod()%>]
<br>
パス: [<%=request.getPathInfo()%>]
<br>
トランス: [<%=request.getPathTranslated()%>]
<br>
クエリ: [<%=request.getQueryString()%>]
<br>
リクエストSID: [<%=request.getRequestedSessionId()%>]
<br>
URI: [<%=request.getRequestURI()%>]
<br>
URL: [<%=request.getRequestURL()%>]
<br>
PATH: [<%=request.getServletPath()%>]
<br><br>
<p><a href="AuthDump.jsp">認証DB情報の表示</a></p>
<br>
<p><a href="../login/logout.jsp">logout</a></p>
</body>
</html>


【error/403.html】

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/login/logout.jsp">
<title>Insert title here</title>
</head>
<body>
<p>
お客さまのIDは、ログインする権限がありません。( エラー403)
3秒後にログアウトページに移動しますので。再度ログインしてください。
</p>
<br>
<p><a href="../login/logout.jsp">再度ログインしてください。</a></p>
</body>
</html>

【error/404.html】

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
<title>error</title>
</head>
<body>
<p>
エラーページです(404)3秒後にログアウトページに移動します。再度ログインしてください。
</p>
<br>
<p><a href="../security-webapps/menu.jsp">再度ログインしてください。</a></p>
</body>
</html>

【error/408.html】

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/security-webapps/menu.jsp">
<title>error</title>
</head>
<body>
<p>エラーページです(408)3秒後にログインページに移動します。</p>
<br> <br>
<p>
HTTPステータス 408 - ログインプロセスに認められていた時間が過ぎました。
継続したいならば,バックボタンを2度押してから再度リンクを押すか,
ブラウザを立ち上げ直してください
</p>
<br>
<p><a href="../security-webapps/menu.jsp">業務メニューにジャンプします。</a></p>
</body>
</html>




【WEBーINF/web.xml】

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>JDBCAuth</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

<security-constraint>
<web-resource-collection>
<web-resource-name>Authentication of FormAuth</web-resource-name>
<url-pattern>/security-webapps/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
<role-name>manager</role-name>
<role-name>member</role-name>
<role-name>entry</role-name>
<role-name>stop</role-name>
</auth-constraint>
</security-constraint>

<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login/login.jsp</form-login-page>
<form-error-page>/login/login.jsp?status=error</form-error-page>
</form-login-config>
</login-config>

<security-role>
<role-name>admin</role-name>
</security-role>

<security-role>
<role-name>manager</role-name>
</security-role>

<security-role>
<role-name>member</role-name>
</security-role>

<security-role>
<role-name>entry</role-name>
</security-role>

<security-role>
<role-name>stop</role-name>
</security-role>

<session-config>
<session-timeout>1</session-timeout>
</session-config>

<error-page>
<error-code>403</error-code>
<location>/error/403.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error/404.html</location>
</error-page>
<error-page>
<error-code>408</error-code>
<location>/error/408.html</location>
</error-page>

</web-app>



Tomcatのserver.xmlにJDBC認証のDBを設定。
/usr/local/tomcat/conf/server.xml


【servers/-/server.xml】

<!-- by takahab
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
by takahab -->

<!-- by takahab -->
<Realm className="org.apache.catalina.realm.JDBCRealm"
connectionName="takahab"
connectionPassword="no3177"
connectionURL="jdbc:mysql://localhost/auth"
driverName="com.mysql.jdbc.Driver"
roleNameCol="role_name"
userCredCol="user_pass"
userNameCol="user_name"
userRoleTable="user_roles"
userTable="auth_users"/>
</Realm>
<!-- by takahab -->





【regist/regist.html】 old版

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登録項目入力フォーム</title>
</head>
<body>
<form method="POST" action="regist.jsp">
<p><label>メールアドレス:
<input type="text" name="auth_mailaddress" value="" tabindex="0" accesskey="a">
</label> </p>

<p><label>   お名前:
<input type="text" name="auth_name" value="" tabindex="1" accesskey="b">
</label></p>

<p>性別:
<input type="radio" name="auth_sex" value="man" tabindex="2" accesskey="c">男性
<input type="radio" name="auth_sex" value="woman" tabindex="3" accesskey="d">女性<br>

職業:
<input type="checkbox" name="auth_job" value="Student" tabindex="4" accesskey="e">学生
<input type="checkbox" name="auth_job" value="worker" tabindex="5" accesskey="f">会社員
<input type="checkbox" name="auth_job" value="official" tabindex="6" accesskey="g">公務員
<input type="checkbox" name="auth_job" value="etc" tabindex="7" accesskey="h">その他
</p>

<p>年代:<select name="auth_age" tabindex="8">
<option value="10ages">10代</option><option value="20ages">20代</option>
<option value="30ages">30代</option><option value="40ages">40代</option>
<option value="50ages">50代</option><option value="60ages">60代</option>
<option value="age" selected>お選びください</option>
</select></p>

<p><label>お問合せ<br>
<textarea name="auth_title" rows="5" cols="60" tabindex="9" accesskey="i">
</textarea>
</label></p>

<p>
<input type="submit" value="登録" tabindex="10" accesskey="s">
<input type="reset" value="取消" tabindex="11" accesskey="r">
</p>
</form>
</body>
</html>
















2013年10月18日金曜日

JDBC認証

http://www.javaroad.jp/opensource/js_tomcat11.htm
http://www.avajava.com/tutorials/lessons/how-do-i-log-out-of-an-application-that-uses-form-authentication.html
http://docs.oracle.com/javaee/1.3/api/javax/servlet/http/HttpServletRequest.html


まず、データベース構築

create database auth;
use auth;
create table auth_users(
user_name    varchar(64) not null,
user_pass    varchar(16) not null
);

create table user_roles(
user_name    varchar(64) not null,
role_name    varchar(16) not null
);

insert into auth_users (user_name, user_pass) values ('takahab', 'passwd');
insert into auth_roles (user_name, role_name) values ('takahab', 'form');



------------------------------------------auth.sql-------------------------------------------------------------DROP TABLE IF EXISTS users;
CREATE TABLE auth_users (
user_name varchar(64),
user_pass varchar(16),
PRIMARY KEY (user_name)
);

INSERT INTO auth_users VALUES ('takahab@xx', 'passwd');
INSERT INTO auth_users VALUES ('takaha-m@xx','passwd');
DROP TABLE IF EXISTS user_roles;
CREATE TABLE user_roles (
user_name varchar(64),
role_name varchar(16),
PRIMARY KEY (user_name)
);

INSERT INTO user_roles VALUES ('takahab@xx', 'form');
INSERT INTO user_roles VALUES ('takaha-m@xx', 'manager');

------------------------------------------auth.sql-------------------------------------------------------------

mysql> CREATE DATABASE auth;
mysql> USE auth;
mysql> SOURCE auth.sql;

-----------------------------------------------------------------------------------------------------------


【server.xml】     ーーーーEngineタグ内に記述

<!--  by takahab
       <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
by takahab  -->

<!--  by takahab  -->
<Realm className="org.apache.catalina.realm.JDBCRealm"
        connectionName="takahab"
        connectionPassword="no3177"
        connectionURL="jdbc:mysql://localhost/auth"
        driverName="com.mysql.jdbc.Driver"
        roleNameCol="role_name"
        userCredCol="user_pass"
        userNameCol="user_name"
        userRoleTable="auth_roles"
        userTable="auth_users"
 />
<!--  by takahab  -->
      </Realm>


【WEB-INF/web.xml】

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD
          Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

  <security-constraint>
    <web-resource-collection>
      <web-resource-name>Authentication of FormAuth</web-resource-name>
      <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
      <role-name>form</role-name>
    </auth-constraint>
  </security-constraint>

  <login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
      <form-login-page>/login.jsp</form-login-page>
      <form-error-page>/login_err.html</form-error-page>
    </form-login-config>
  </login-config>

  <security-role>
    <role-name>form</role-name>
  </security-role>

  <session-config>
 <session-timeout>1</session-timeout>
  </session-config>

</web-app>


【WebContent/login.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>login page</title>
</head>
<body>
<form method="post" action='<%= response.encodeURL("j_security_check")%>'>
<table>
  <tr>
    <td>ID</td>
    <td> <input type="text" name="j_username"></td>
  </tr>
  <tr>
    <td>Pass</td>
    <td><input type="password" name="j_password"></td>
  </tr>
</table>
<br>
<input type="submit" value="Login" name="submit">
<input type="reset" value="Reset" name="reset">
</form>
</body>
</html>


【WebContent/menu.html】

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login successful</title>
</head>
<body>

ログイン成功です。

<p><a href="logout.jsp">logout</a></p>
<br>
<br>
<p><a href="index.html">TOPに移動します。(index.html)</a></p>

</body>
</html>

【WebContent/login_err.html】

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login error page</title>
</head>
<body>

ID、Passwordが誤っています。

<br/><br/>
<a href="menu.html">メニューシステムに移動します。</a>

</body>
</html>

【logout.jsp】

<%@ page session="true" language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

User [<%=request.getRemoteUser()%>] has been logged out.

<% session.invalidate(); %>

<br/><br/>
<a href="menu.html">HTMLメニューシステムに移動します。</a>
<a href="menu.jsp">JSPメニューシステムに移動します。</a>

【WebContent/menu.jsp】

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>メニューシステム(jspタイプ)</title>
</head>
<body>
ログイン成功です。
<br>
<br>
ユーザ名: [<%=request.getRemoteUser()%>]
<br>
Authタイプ: [<%=request.getAuthType()%>]
<br>
ヘッダー:         [< %=request.getHeader(name)% >]
<br>
メソッド:         [<%=request.getMethod()%>]
<br>
パス: [<%=request.getPathInfo()%>]
<br>
トランス:         [<%=request.getPathTranslated()%>]
<br>
クエリ: [<%=request.getQueryString()%>]
<br>
リクエストSID:         [<%=request.getRequestedSessionId()%>]
<br>
URI: [<%=request.getRequestURI()%>]
<br>
URL: [<%=request.getRequestURL()%>]
<br>
PATH: [<%=request.getServletPath()%>]
<br>

<p><a href="logout.jsp">logout</a></p>
<br>
<br>
<p><a href="index.html">TOPに移動します。(index.html)</a></p>
</body>
</html>

【WebContent/index.html】

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<meta http-equiv="refresh" content="3; URL=http://localhost:8080/JDBCAuth/menu.html">
</head>
<body>
<p>このページは、ログインページに移動します。</p>

<p><a href="menu.html">HTMLメニューシステムにジャンプします。</a></p>
<p><a href="menu.jsp">JSPメニューシステムにジャンプします。</a></p>

</body>
</html>

































































2013年10月11日金曜日

CentOS6.4にmysql 5.6.16をインストールした。

20140318更新 
# rpm -qa | grep -i mysql
 

 yum erase mysql-5.1.69-1.el6_4.x86_64 mysql-devel-5.1.69-1.el6_4.x86_64 mysql-server-5.1.69-1.el6_4.x86_64 mysql-libs-5.1.69-1.el6_4.x86_64


wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.16-1.el6.x86_64.rpm
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.16-1.el6.x86_64.rpm
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.16-1.el6.x86_64.rpm
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-shared-5.6.16-1.el6.x86_64.rpm



yum install MySQL-server-5.6.16-1.el6.x86_64.rpm
yum install MySQL-client-5.6.16-1.el6.x86_64.rpm
yum install MySQL-devel-5.6.16-1.el6.x86_64.rpm
yum install MySQL-shared-5.6.16-1.el6.x86_64.rpm


# cat /root/.mysql_secret
# The random password set for the root user at Fri Oct 11 15:43:09 2013 (local time): eDpfy22r

# service mysql start
# mysql -uroot -p

mysql> set password for 'root'@'localhost'=password('xxxxxx');

mysql> use mysql;
Database changed
mysql> select host, user, password from user;
+-------------------------------+------+-------------------------------------------+
| host                                   | user | password                                          |
+-------------------------------+------+-------------------------------------------+
| localhost                           | root | *D3F8362A5CC757B308222F6CF971CC5407185638 |
| terminal-manage.cxdnext.co.jp | root | *D13EFCDE1766FB275BEC1B94639DF8E0305861A8 |
| 127.0.0.1                          | root | *D13EFCDE1766FB275BEC1B94639DF8E0305861A8 |
| ::1                                      | root | *D13EFCDE1766FB275BEC1B94639DF8E0305861A8 |
+-------------------------------+------+-------------------------------------------+
4 rows in set (0.00 sec)

mysql> 

簡易ログイン画面を作ってみた。

【index.html】

<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <title>ログイン</title>
        <link rel="STYLESHEET" href="tm.css" type="text/css">
        <script type="text/javascript" src="login.js">
        </script>
    </head>
    <body onload="fieldChanged();">
        <p align="center">
                <input border="0" src="title.files/title.jpg" name="I1" width="740" height="149" type="image"></p>
        <br>
        <br>
        <h1 align="center">タイトル</h1>
        <br>
        <br>
        <hr>
        <div align="center">
            <table border="0">
<!--            <form name="tm" action="release/menu.html">  -->:
                <form>
                    <tr>
                        <th class="login_field">
                            ユーザID
                        </th>
                        <td class="login_field">
                            <input type="text" name="user_id" value=""
                                                        size="24" id="user_id"
                                                        onkeyup="fieldChanged();"
                                                        onchange="fieldChanged();">
                        </td>
                    </tr>
                    <tr>
                        <th class="login_field">
                            パスワード
                        </th>
                        <td class="login_field">
                            <input type="password" name="password" value=""
                                                        size="24" id="password"
                                                        onkeyup="fieldChanged();"
                                                        onchange="fieldChanged();">
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" class="login_button">
<!--                           <input type="submit" value="ログイン" id="login">        -->
                           <input type="submit" value="ログイン" id="login" onclick="return passwdCheck();">
                        </td>
                    </tr>
                </form>
            </table>
        </div>
    </body>
</html>


【login.js】
function fieldChanged(){
    var userId = getField("user_id");
    var password = getField("password");
    var disabled = true;
    if (userId.value.length > 0 && password.value.length > 0) {
        disabled = false;
    }
    var login = getField("login");
    if (disabled) {
        login.setAttribute("disabled", "disabled");
    }
    else {
        login.removeAttribute("disabled");
    }
}
function getField(fieldName){
    var field = document.getElementById(fieldName);
    if (field == undefined) {
        throw new Error("要素が見つかりません: " + fieldName);
    }
    return field;
}
function passwdCheck(){
    var userId = getField("user_id");
    var pw = getField("password");
    var disabled = true;
    var caId = "ID";
    var caPw = "password";

    //alert( "PasswdCheckが呼ばれました");

    if( userId.value != caId ){
        alert("ユーザIDが登録されていません");
        disabled = false;
     }else{
        if( pw.value != caPw ){
                alert("パスワードが違います");
                disabled = false;
        }else{
                //alert("認証をクリアしました");
                location.href="release/"+pw.value+".html";
        }
    }
    var login = getField("login");
    if (disabled) {
        login.setAttribute("disabled", "disabled");
    }
    else {
        login.removeAttribute("disabled");
    }
    return false;
}   


【tm.css】

h1 {
    font-size: 32px;
    margin: 0px;
    padding: 4px;
    color: #222288;
}
hr {
    margin-top: 8px;
    margin-bottom: 8px;
}
th.login_field {
    font-size: 14px;
    width: 140px;
    text-align: left;
    padding: 8px;
    color: #ffffff;
    background-color: #223366;
}
td.login_field {
    padding: 8px;
}
td.login_button {
    text-align: center;
    padding: 8px;
}
table.toolbar {
    margin-top: 16px;
    margin-bottom: 32px;
}
table.list th {
    width: 150px;
    text-align: left;
    padding: 8px;
    color: #ffffff;
    background-color: #5555aa;
}
table.list td {
    background-color: #bbbbff;
    padding: 8px;
}
th.add_field {
    width: 150px;
    text-align: left;
    padding: 8px;
    color: #ffffff;
    background-color: #aaaaff;
}
td.add_field {
    padding: 8px;
}
td.add_button {
    text-align: center;
    padding: 8px;
}




















2013年9月27日金曜日

ciscoルータにACLを追加した。

Username: xxxxxx
Password:*******

RT1>enable
Password:*******

RT1# show access-lists

RT1# configure terminal


RT1# ip access-list extended 101
RT1(config-ext-nacl)# permit tcp host 192.168.1.50 eq www any established
RT1(config-ext-nacl)# no 10
RT1(config-ext-nacl)# ^Z

RT1# show running-config
RT1# copy running-config startup-config
RT1# show startup-config

デバックしてみる。

RT1# show ip nat translation
RT1# term mon
RT1# debug ip nat detailed

RT1# no debug ip nat detailed
qq

RT1# show ip nat translation

2013年8月28日水曜日

ディスクのスマート情報を読む。

# apt-get install smartmontools

# smartctl -a /dev/sdc

# smartctl -l error /dev/sdc


GUIツールもあった。

# apt-get install gsmartcontrol

2013年8月9日金曜日

VNC Serverをコンパイルしてみる。

cd mydroid
mkdir additional
cd  additional


git clone https://github.com/oNaiPs/droid-VNC-server.git

wget http://fastdroid-vnc.googlecode.com/files/fastdroid-vnc-1.0.tgz
tar xvzf fastdroid-vnc-1.0.tgz

cd ..


ln -s  ../additional/droid-VNC-server/nativeMethods/ external/

cd external/nativeMethods

. ../../build/envsetup.sh
lunch
mm .




エラー多発、うまくいかない!!

2013年8月8日木曜日

久々に最新版のAndroidソースをダウンロードしてみた。

【環境】

sudo apt-get install openjdk-6-jdk

update-alternatives --config java
update-alternatives --config javac


Python 2.7.4 (default, Jul  5 2013, 08:21:57)

git version 1.8.1.2

GNU Make 3.81

java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.13.04.2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)



$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk

sun-javaは無いので、oracleから jre-6u45-linux-x64.binをダウンロードして、
shellで展開。


update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-6-oracle/bin/java 16043
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-6-oracle/bin/javac 16043

update-alternatives --config java
update-alternatives --config javac



$ sudo apt-get install git gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos \
  python-markdown libxml2-utils xsltproc zlib1g-dev:i386


$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so


vi  /etc/udev/rules.d/51-android.rules


$ mkdir ~/bin
$ PATH=~/bin:$PATH

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

$ repo init -u https://android.googlesource.com/platform/manifest                      ※特定Verの場合  -b android-4.0.1_r1

$ repo sync

$ . ./build/envsetup.sh
$ lunch full-eng
$ make -j4



2013年8月6日火曜日

eclipseにsvnプラグイグインをインストール

Eclipse Kepler (4.3)

Kepler - http://download.eclipse.org/releases/kepler

コラボレーション内の下記をチェック

•Subversive SVN チーム・プロバイダー
•Subversive SVN チーム・プロバイダー・ローカライゼーション(オプション)

コネクター選択画面でSVNコネクタをインストール。

選択画面が出ない場合は、
ヘルプ(H) → 新規ソフトウェアのインストールhttp://community.polarion.com/projects/subversive/download/eclipse/3.0/kepler-site/
からSVNコネクタをインストール。

2013年7月23日火曜日

Vmware Toolsがインストールできない。

このエラーがでたけど、VMplayer自身をスーパユーザで動かしたら解決した。


# vmpaler










ここからもVmware Toolsがダウンロードできた。
http://softwareupdate.vmware.com/cds/vmw-desktop/play







2013年7月22日月曜日

CenOSにもtomcatをいれてみた。

まず CentOSをインストール。
CentOS-6.4-x86_64-bin-DVD1.iso をダウンロードしてインストール。

次に日本語化

# yum groupinstall "Japanese Support"

# vi /etc/sysconfig/i18n
#LANG="en_US.UTF-8"
LANG="ja_JP.UTF-8"
SYSFONT="latarcyrheb-sun16"
 

再起動して、古い名前のままを指定。

(1) JAVAのインストール

http://www.oracle.com/technetwork/java/javase/downloads/index.html

ここから JREをダウンロード(jre-7u25-linux-x64.rpm)





ここから tomcatをダウンロード(apache-tomcat-7.0.42.tar.gz)


useradd -s /sbin/nologin tomcat

tar xvzf apache-tomcat-7.0.42.tar.gz
mv apache-tomcat-7.0.42 /usr/local
chown tomcat:tomcat -R apache-tomcat-7.0.42
ln -s apache-tomcat-7.0.42 tomcat


vi /usr/local/tomcat/bin/startup.sh /usr/local/tomcat/bin/shutdown.sh

次を追加。(先頭に追加)

JAVA_HOME=/usr/java/default
CATALINA_HOME=/usr/local/tomcat
export JAVA_HOME CATALINA_HOME


vi /usr/local/tomcat/conf/tomcat-users.xml

<user username="takahab" password="xxxxxxx" roles="admin-gui,manager-gui"/>


vi  /etc/init.d/tomcat

#!/bin/bash
#
# Startup script for the Tomcat Servlet Container
#
# chkconfig: 2345 35 65
# description: Tomcat is the servlet container that is used in the official \
#              Reference Implementation for the Java Servlet and JavaServer \
#              Pages technologies

TOMCAT_USER=tomcat
CATALINA_HOME=/usr/local/tomcat

. /etc/rc.d/init.d/functions
prog=tomcat

start() {
    echo -n $"Starting $prog: "
    daemon --user $TOMCAT_USER $CATALINA_HOME/bin/startup.sh > /dev/null
    RETVAL=$?
    if [ $RETVAL -eq 0 ]; then
        echo_success
    else
        echo_failure
    fi
    echo
    [ $RETVAL = 0 ] && touch /var/lock/subsys/$prog
    return $RETVAL
}
stop() {
    echo -n $"Stopping $prog: "
    daemon --user $TOMCAT_USER $CATALINA_HOME/bin/shutdown.sh > /dev/null
    RETVAL=$?
    if [ $RETVAL -eq 0 ]; then
        echo_success
    else
        echo_failure
    fi
    echo
    [ $RETVAL = 0 ] && rm -f /var/lock/subsys/$prog
    return $RETVAL
}

# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  restart)
    stop
    start
    ;;
  status)
    INSTANCES=`ps --columns 512 -aef|grep java|grep tomcat|grep org.apache.catalina.startup.Bootstrap|wc -l`
    if [ $INSTANCES -eq 0 ]; then
        echo $prog is stopped
        RETVAL=3
    else
        if [ $INSTANCES -eq 1 ]; then
            echo $prog is running 1 instance...
        else
            echo $prog is running $INSTANCES instances...
        fi
        RETVAL=0
    fi
    ;;
  *)
    echo $"Usage: $prog {start|stop|restart|status|help}"
    exit 1
esac

exit $RETVAL











chmod a+x /etc/init.d/tomcat

/sbin/chkconfig --add tomcat

/etc/init.d/tomcat start

chkconfig httpd on
chkconfig tomcat on
chkconfig --list







(3) Tomcat コネクタの設定

vi /usr/local/tomcat/conf/server.xml

【8080ポート無効】

<!-- <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    by takahab -->

【8009ポート有効】

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
 


【tomcatに渡すロケーションを設定】
# vi /etc/httpd/conf/httpd.conf
 
ーーーファイルの最後に追加

# by takahab
Include /etc/httpd/conf/extra/httpd-proxy.conf
 



vi /etc/httpd/conf/extra/httpd-proxy.conf      ------新規ファイル作成

<Location / >
ProxyPass ajp://localhost:8009/ 
</Location>


※servlet以下であれば、<Location /servlet > 上記はルート

マップするディレクトリが異なる時。

<Location /servlet/>
        ProxyPass ajp://localhost:8009/ keepalive=on
        ProxyPassReverse ajp://localhost:8009/
        ProxyPassReverseCookiePath / /servlet/
</Location>

 
 






【ついでに!!】

# yum -y install vsftpd
# /etc/init.d/vsftpd start
# chkconfig vsftpd on

# yum -y install ftp
# yum -y install telnet-server
# yum -y install telnet


# 192.1.168.1.*を許可
# vi /etc/hosts.allows
in.telnetd : localhost  127.0.0.1 192.168.1.


# vi /etc/sysconfig/iptables
 # Generated by iptables-save v1.4.7 on Tue Oct  1 11:33:21 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [69:7864]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 23 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20:21 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Tue Oct  1 11:33:21 2013

# service iptables restart
# iptables -L  で確認。


SElinuxを一時的に無効。
# setenforce 0
# sestatus
# getsebool -a


#FTPパッシブモードを設定




#vi /etc/sysconfig/iptables-config

IPTABLES_MODULES=”ip_conntrack_ftp ip_nat_ftp”

#vi /etc/vsftpd/vsftpd.conf



































#パッシブモードを利用にする
pasv_promiscuous=YES
#パッシブモード利用時のポート範囲(例:50000~50030)
pasv_min_port=50000
pasv_max_port=50030












2013年7月19日金曜日

CentOS7 samba 設定

■samba インストール
# yum install samba samba-client samba-common

# systemctl enable smb.service
# systemctl enable nmb.service
# systemctl restart smb.service
# systemctl restart nmb.service

# firewall-cmd --permanent --zone=public --add-service=samba
# firewall-cmd --reload
# chcon -t samba_share_t /home/takahab/Common -R

# vi /etc/samba/smb.conf

# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.
[global]
workgroup = WORKGROUP
security = user
guest account = nobody
map to guest = Bad User
wide links = yes
unix extensions =no

passdb backend = tdbsam
printing = cupsprintcap name = cups
load printers = yes
cups options = raw
[share]
comment = common
path = /home/takahab/Common
public = yes
guest ok = yes
browseable = yes
writable = yes
printable = no


[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = @printadmin root
force group = @printadmin
create mask = 0664
directory mask = 0775

# testparm -v

■samba でシンボリックリンクがアクセスできない。
グローバルセクションに下記を追加したら動いた。
[global]
wide links = yes
unix extensions =no

EUCのファイル名がみえない。 ーーーーこれは便利

apt-get install convmv

/usr/local/bin/convmv -r -f euc-jp -t utf8 [シェアディレクトリ] --notest

2013年7月11日木曜日

Servletを使ったサンプルを動かしてみた。

・ ファイル→新規→動的Webプロジェクト
   プロジェクト名: tomcat_sample
   web.xmlデブロイメント記述の生成



【Formsample.jsp】
・WebContent→新規→JSPファイル
 bodyに下記を記述。

<p>会員登録</p>

<form action="/tomcat_sample/RequestSample1" method="get">

<table>
<tr>
<td>氏名</td>
<td><input type="text" size="20" value="" name="name"></td>
</tr>

<tr>
<td>年齢</td>
<td><input type="text" size="7" value="" name="old"></td>
</tr>

<tr>
<td>性別</td>
<td>
<select name="sex" size="2" multiple>
<option value="male">男性</option>
<option value="female">女性</option>
</select>
</td>
</tr>

</table>
<input type="submit" name="button1" value="送信">
</form>


【RequestSample1.java】
・WebContent→新規→その他→サーブレット

Package:     com.example.servlets
Class:           RequestSample1      

・doGet()に下記を記述。


response.setContentType("text/html;charset=UTF-8");
   PrintWriter out = response.getWriter();

   String name = request.getParameter("name");

   int old;
   String tmp = request.getParameter("old");
   if (tmp == null || tmp.length() == 0){
     old = -1;
   }else{
     try{
       old = Integer.parseInt(tmp);
     }catch (NumberFormatException e){
       old = -1;
     }
   }

   String sex[] = request.getParameterValues("sex");

   StringBuffer sb = new StringBuffer();

   sb.append("<html>");
   sb.append("<head>");
   sb.append("<title>サンプル</title>");
   sb.append("</head>");
   sb.append("<body>");

   sb.append("<p>お名前は ");
   sb.append(name);
   sb.append(" です</p>");

   sb.append("<p>年齢は ");
   if (old == -1){
     sb.append("未設定です</p>");
   }else{
     sb.append(old);
     sb.append(" です</p>");
   }

   sb.append("<p>性別は ");
   if (sex != null){
     for (int i = 0 ; i < sex.length ; i++){
       sb.append(sex[i]);
       sb.append(" ");
     }

     sb.append(" です</p>");
   }else{
     sb.append("選択されていません</p>");
   }

   sb.append("</body>");
   sb.append("</html>");

   out.println(new String(sb));

   out.close();



【web.xml】
・下記を追加。

 <servlet>
    <servlet-name>RequestSample1</servlet-name>
    <servlet-class>com.example.servlets.RequestSample1</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>RequestSample1</servlet-name>
    <url-pattern>/RequestSample1</url-pattern>
  </servlet-mapping>





































2013年7月10日水曜日

apacheをインストール

sudo apt-get install apache2


suddo service apache2 stop

sudo service apache2 start


/var/www/index.html




コネクタのインストール
apt-get install libapache2-mod-jk2

2013年7月9日火曜日

eclipseでtomcatアプリを作成してみた。

(1) ファイル→新規→動的Webプロジェクト
(2) webContent→新規→JSPファイルにindex.jspを作成する。

   【index.jsp】
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"         "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<% java.util.Date d = new java.util.Date(); %>
<h1>
Today's date is <%= d.toString() %> and this jsp page worked!
</h1>

</body>
</html>

(3)  Java Resources→srcで右クリック: 新規→サーブレット
    Java パッケージ名: com.example.servlets
       クラス名:     HelloServlet

       【HelloServlet.java】

package com.example.servlets;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloServlet
 */
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
      
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().write("Hello, world!");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

}


【web.xml】
<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.example.servlets.HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

を追加。

http://localhost:8080/tomcat_sample/hello

で表示されるはずだが?


 http://www.atmarkit.co.jp/ait/articles/1104/12/news134.html
 http://www.atmarkit.co.jp/ait/articles/0301/09/news001.html

mysqlを触ってみた。

【ユーザ登録】

select host,user from mysql.user;
delete from mysql.user where user='takahab';
select host,user from mysql.user;

grant insert,select  on *.* to takahab@localhost identified by 'himitsu';
select host,user from mysql.user;

delete from mysql.user where user='takahab';
grant all privileges on *.* to takahab@localhost identified by 'himitsu' with grant option;

select host,user from mysql.user;

※参考
すべてのホスト(%)
grant all privileges on *.* to takahab@% identified by 'himitsu' with grant option;
ホストを制限
grant all privileges on *.* to takahab@'172.16.0.0/255.255.255.0' identified by 'himitsu' with grant option;


【テストDBを作る】

$mysql -u root -p

drop   database test;
create database test;
use test;
create table customer(
num     integer not null,
name    varchar(20) not null,
addr    varchar(20) not null,
constraint pk_customer primary key (num)
);

insert into customer (num, name, addr) values (1, 'aaaaaaaa', '090-0123-4001');
insert into customer (num, name, addr) values (2, 'bbbbbbbb', '090-0123-4002');
insert into customer (num, name, addr) values (3, 'cccccccc', '090-0123-4003');


select * from customer;


【テストアプリを作る】


import java.sql.*;
class DbTest {
        public  static void main(String[] args) {
        int     id;
        String  name;
                try {
                        // JDBCドライバの登録
                        String driver   = "com.mysql.jdbc.Driver";
                        // データベースの指定
                        String server   = "localhost";  // MySQLサーバ ( IP または ホスト名 )
                        String dbname   = "test";       // データベース名
                        // String url   = "jdbc:mysql://" + server + "/" + dbname + "?useUnicode=true&characterEncoding=EUC_JP";
                        String url      = "jdbc:mysql://" + server + "/" + dbname;
                        String user     = "takahab";    // データベース作成ユーザ名
                        String password = "himitsu";    // データベース作成ユーザパスワード
                        Class.forName (driver);

                        // データベース接続

                        System.out.println( url );

                        Connection con  = DriverManager.getConnection(url, user, password);

                        // テーブル照会
                        Statement stmt  = con.createStatement ();
                        String sql      = "SELECT * FROM test.customer";
                        ResultSet rs    = stmt.executeQuery (sql);

                        // テーブル出力
                        while(rs.next()){
                                id      = rs.getInt("num");
                                name    = rs.getString("name");

                                System.out.println("ID:" + id);
                                System.out.println("名前:" + name);
                        }
                        // データベースクローズ
                        rs.close();
                        stmt.close();
                        con.close();
                } catch (SQLException e) {
                        System.err.println("SQL failed.");
                        e.printStackTrace ();
                } catch (ClassNotFoundException ex) {
                        ex.printStackTrace ();
                }
        }
}

【環境】
mysqlをダウンロード
http://dev.mysql.com/downloads/connector/j/

cd ~/sample
mkdir lib
cd lib
ln -s ../mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar mysql-connector-java-5.1.25.jar
ln -s ../mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar mysql-connector-java.jar
ln -s ../mysql-connector-java-5.1.25/mysql-connector-java-5.1.25-bin.jar mysql.jar

cd ..
javac DbTest.java
java  -cp ./lib/mysql.jar:.   DbTest






2013年7月8日月曜日

Mysqlをインストールしてみた。

apt-get install mysql-server

apt-get install mysql-cliant

apt-get install libmysql-java

sudo mysq
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)


mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 38
Server version: 5.5.31-0ubuntu0.13.04.1 (Ubuntu)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql>

mySQLの再起動
sudo /etc/init.d/mysql restart



※テストDBを作ってみる。

drop   database test;
create database test;
use test;
CREATE TABLE 顧客マスタ (
顧客ID  INTEGER NOT NULL,
顧客名  VARCHAR(20) NOT NULL,
連絡先  VARCHAR(20) NOT NULL,
CONSTRAINT pk_kokyaku PRIMARY KEY (顧客ID)
);

INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (1, 'aaaaaaaa', '090-0123-4001');
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (2, 'bbbbbbbb', '090-0123-4002');
INSERT INTO 顧客マスタ (顧客ID, 顧客名, 連絡先) VALUES (3, 'cccccccc', '090-0123-4003');


select * from 顧客マスタ;

mysql>


※内蔵サンプルをみる。

 mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
24 rows in set (0.00 sec)




※CentOSにもインストールしてみた。

# yum -y install mysql-server

# /etc/init.d/mysqld start
# chkconfig mysqld on
# chkconfig --list mysqld

eclipseをvi風に使う。

ヘルプ→新規ソフトウェアのインストール

Vrapper - http://vrapper.sourceforge.net/update-site/stable

ウィンドウ→設定→一般→キー

スキーム  Vim's key bindings



こりゃ便利だ、感激!!!!



tamcat7とjenkinsのポートを変更。

eclipseと同居させる為にポートを変更した。


vi /etc/tomcat/server.xml

 <!-- Define a non-SSL HTTP/1.1 Connector on port 8081 by takahab -->
<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               URIEncoding="UTF-8"
               redirectPort="8443" />

<!-- <Server port="8005" shutdown="SHUTDOWN"> change 8005 to 8006 by takahab -->
<Server port="8006" shutdown="SHUTDOWN">



vi /etc/dafault/jenkins

# port for HTTP connector (default 8080; disable with -1)
# change port 8080 to 8081 by takahab
HTTP_PORT=8081

2013年7月5日金曜日

ubuntu にtomcat7 を入れてみた。

sudo apt-get install tomcat7
sudo apt-get install tomcat7-docs
apt-get install tomcat7-examples
apt-get install tomcat7-admin


vi /etc/tomcat7/tomcat-users.xml

<tomcat-users>
  <role rolename="takahab"/>
  <user username="takahab" password="xxxxxxxx" roles="manager-gui"/>
</tomcat-users>

http://localhost:8080

ROOT:/var/lib/tomcat7/webapps/ROOT


万歳!!


ついでに

apt-get insatall jenkins
ln -s /usr/share/jenkins/jenkins.war   /var/lib/tomcat7/webapps/jenkins.war



vi /var/lib/tomcat7/webapps/jenkins/WEB-INF/web.xml

  <env-entry>
    <env-entry-name>JENKINS_HOME</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>/var/lib/tomcat7/webapps/jenkins</env-entry-value>
  </env-entry>

ubunut 64ビット環境でAVDが起動できない。

AVDどうも32ビットでコンパイルされているらしい。

sudo apt-get install ia32-libs

で解決。

eclipseを最新にしたらAndroid SDKとAVDマネージャが消えた。

ウインドウ→パースペクティブのカスタマイズ→コマンド・グループ可用性を選択して、

Android SDKおよびAVDマネージャーをON

2013年7月4日木曜日

ubuntu 13.04にソフト更新したらVmplayerが動かなくなった。

ソフト更新したら、カーネルコンパイルが必要とでるが、installをクリックしてもコンパイルされない。

$ uname -r
3.8.0-26-generic
$ sudo ln -s /usr/src/linux-headers-3.8.0-26-generic/include/generated/uapi/linux/version.h /usr/src/linux-headers-3.8.0-26-generic/include/linux/version.h
$ sudo vmware-modconfig --console --install-all


で解決。

2013年7月2日火曜日

wireshark root 起動でエラーがでる。

Lua:Error during loading:[string "/usr/share/wireshark/init.lua":45:dofile as been disaled


sudo chgrp adm /usr/bin/dumpcap
sudo chmod 750 /usr/bin/dumpcap
sudo setcat cap_net_raw,cap_net_admin+eip /usr/bin/dumpcap

ubuntu13.04をインストールしたところgrubがインストールされなかった。

13.04インストールディスクで立ち上げて、

$ sudo mount /dev/sda3 /mnt

$ sudo grub-install --root-directory=/mnt /dev/sda
$ sudo umount /mnt

シャットダウン時の後処理 (shutdown)

# vi /etc/systemd/system/drop.service [Unit] Description= stop httpgwd DefaultDependencies=no Before=shutdown.target RefuseManualStart=true ...