Post List

태그

2017년 4월 12일 수요일

jeus

ja
conlist
applist

downcon container1
startcon container1

중복로그인 방지


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");
}

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);
   //로그인 안되있으면 로그인 시킴
  FB.login(function(response) {
       }, {scope: 'publish_stream, email, user_birthday, user_likes'}); // <-- 로그인시킬때 권한    
  }
  },
  {scope: 'read_stream,publish_stream'}
  );
  }
</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();

}

카카오톡 api 공유하기

<script language="javascript" src="/js/kakao.min.js"></script>


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();
          }
 }