ja
conlist
applist
downcon container1
startcon container1
Post List
2017년 4월 12일 수요일
중복로그인 방지
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.List;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class SessionCheck {
private static SessionCheck sessionManager ;
//private static Thread sessionThread;
Hashtable<String, SessionUser> accessUserList = new Hashtable<String, SessionUser>();
//private boolean isRunning = false;
private SessionCheck() {
}
public static SessionCheck getInstance() {
if(sessionManager == null) {
sessionManager = new SessionCheck();
}
/*if(sessionThread == null){
sessionThread = new Thread( sessionManager);
sessionThread.start();
}
*/
return sessionManager;
}
/*
public void run() {
System.out.println("Session Check start.......");
try {
while(true) {
System.out.println("Session Check Begin....");
sessionCheckProc();
isRunning= true;
System.out.println("Session Check End....");
Thread.sleep(20000);
}
} catch (Exception e) {
} finally {
System.out.println("Session Check Terminated....");
isRunning = false;
}
}*/
/*
private void sessionCheckProc() {
// TODO Auto-generated method stub
// 30분 초과 접속시 모두로그아웃 시킴
Enumeration e = accessUserList.keys();
while(e.hasMoreElements()) {
String uid = (String)e.nextElement();
SessionUser user = (SessionUser)accessUserList.get(uid);
System.out.println( System.currentTimeMillis() - user.getLastAccessMiles() );
if( System.currentTimeMillis() - user.getLastAccessMiles() > 30000) {
// logout target
accessUserList.remove(uid);
System.out.println("Thread Remove user :"+uid);
}
}
}
*/
/**
*로그인을 시도 하였을 때 기존 로그인 정보를 삭제한다.
*새로 로그인 된 정보를 입력하여 처리한다.
* @param uid
*/
public void doLogin(String uid, String uname, String ipaddr, HttpSession session) {
SessionUser user = accessUserList.get(uid);
// 다른곳에서로그인 되어 있거나 , 세션이 끊어지지 않았다면 세션을 종료 시킨다.
if(user != null) {
try{
user.getSession().invalidate();
}catch(Exception e){
}
System.out.println("Remove user :"+uid);
accessUserList.remove(uid);
}
SessionUser newUser = new SessionUser();
newUser.setLastAccessMiles(System.currentTimeMillis());
newUser.setIpAddress(ipaddr);
newUser.setUserNm(uname);
newUser.setUserId(uid);
newUser.setSession(session);
System.out.println("Login comp ==>"+uid);
accessUserList.put(uid, newUser);
}
public boolean isLogin(String uid, String ip, String SESSION_ID) {
SessionUser user = accessUserList.get(uid);
if(user == null)
return false;
// 세션아이디 및 접속 아이피가 동일하여야 함.
if(user.getIpAddress().equals(ip) && user.getSessionId().equals(SESSION_ID)) {
// 최종 접속시간을 변경하여 준다.
user.setLastAccessMiles(System.currentTimeMillis());
return true;
}
return false;
}
public static String getJSessionID(HttpServletRequest request) {
Cookie[] cookies = request.getCookies();
try {
for(int i=0; i<cookies.length; i++) {
String cname = cookies[i].getName();
String value = cookies[i].getValue();
if(cname.toUpperCase().equals("JSESSIONID"))
return cookies[i].getValue();
}
} catch (Exception e) {
}
return null;
}
public List<SessionUser> getLoginUsers() {
List<SessionUser> users = new ArrayList<SessionUser>();
Enumeration e = accessUserList.keys();
while(e.hasMoreElements()) {
String uid = (String)e.nextElement();
SessionUser user = accessUserList.get(uid);
System.out.println(user.getUserId()+" "+user.getLastAccessMiles());
users.add(user);
}
Collections.sort(users);
return users;
}
}
2015년 7월 1일 수요일
네이버 밴드 api 공유하기
function share_band(){
var shareUrl = "http://www.band.us/plugin/share?body="+encodeURIComponent(내용)+"&route="+encodeURIComponent(공유할 url);
window.open(shareUrl, "share_band", "width=410, height=540, resizable=no");
}
var shareUrl = "http://www.band.us/plugin/share?body="+encodeURIComponent(내용)+"&route="+encodeURIComponent(공유할 url);
window.open(shareUrl, "share_band", "width=410, height=540, resizable=no");
}
Facebook api 로그인/ 로그아웃
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '324235235235', // 앱 ID
status : true, // 로그인 상태를 확인
cookie : true, // 쿠키허용
xfbml : true // parse XFBML
});
FB.Event.subscribe('auth.login', function(response) {
if (response.status === 'connected') {
FB.api('/me', function(user) {
if (user) {
//로그인 됬음
//로그인 됬음
console.log(user);
} else {
}
});
}else{
console.log(response);
}
});
FB.Event.subscribe('auth.logout', function(response) {
FB.login(function(response) {
}, {scope: 'publish_stream, email, user_birthday, user_likes'}); //
});
};
//페이스북 로그인상태확인
function ckFB(){
FB.getLoginStatus(function(response){
if(response.status=='connected'){
//로그인 되어있으면 로그아웃시킴
FB.logout();
}else{
console.log(response);
//로그인 안되있으면 로그인 시킴
console.log(response);
//로그인 안되있으면 로그인 시킴
FB.login(function(response) {
}, {scope: 'publish_stream, email, user_birthday, user_likes'}); // <-- 로그인시킬때 권한
}
},
{scope: 'read_stream,publish_stream'}
);
}
</script>
<a href="javascript:ckFB();">페이스북 로그인</a>
</script>
<a href="javascript:ckFB();">페이스북 로그인</a>
카카오스토리 api 공유하기
<script language="javascript" src="/js/kakao.min.js"></script>
function share_kakaostory(){
Kakao.init('fsdaf'); 카카오 계정 개발자 신청후 발급받은 키
Kakao.Story.share({
url: 공유할 url
});
Kakao.cleanup();
}
function share_kakaostory(){
Kakao.init('fsdaf'); 카카오 계정 개발자 신청후 발급받은 키
Kakao.Story.share({
url: 공유할 url
});
Kakao.cleanup();
}
카카오톡 api 공유하기
<script language="javascript" src="/js/kakao.min.js"></script>
function share_kakaotalk(){
Kakao.init('!@#%@#%');
Kakao.Link.sendTalkLink({
label: 공유할 내용
});
Kakao.cleanup();
}
function share_kakaotalk(){
Kakao.init('!@#%@#%');
Kakao.Link.sendTalkLink({
label: 공유할 내용
});
Kakao.cleanup();
}
Facebook API 공유하기
Facebook API 공유하기
function share_facebook(){
var shareUrl = "https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(공유할URL); var popOption = "width=370, height=360, resizable=no, scrollbars=no, status=no;";
var wp = window.open(shareUrl, 'facebook', popOption);
if ( wp ) {
wp.focus();
}
}
var shareUrl = "https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(공유할URL); var popOption = "width=370, height=360, resizable=no, scrollbars=no, status=no;";
var wp = window.open(shareUrl, 'facebook', popOption);
if ( wp ) {
wp.focus();
}
}
피드 구독하기:
글 (Atom)